Skip to content

Instantly share code, notes, and snippets.

View ezimuel's full-sized avatar
🇮🇹
Working remotely, since 2008

Enrico Zimuel ezimuel

🇮🇹
Working remotely, since 2008
View GitHub Profile
@ezimuel
ezimuel / encrypt_file.php
Created September 27, 2013 13:54
Example to encrypt a file (even big) using Zend\Filter\Encrypt of ZF2 with a simple block schema (low memory consumption).
<?php
// include the ZF2 library
use Zend\Filter\Encrypt;
if (!isset($argv[1]) or !isset($argv[2])) {
die("Usage: " . basename(__FILE__) . " <file_to_encrypt> <encryption_key>\n");
}
if (!file_exists($argv[1])) {
die("The file {$argv[1]} specified doesn't exist\n");
@ezimuel
ezimuel / gist:f34b22f347d4a0c985a1
Created June 25, 2015 07:38
New stratigility example, updated with PR zendframework/zend-stratigility#12
<?php
use Zend\Stratigility\MiddlewarePipe;
use Zend\Diactoros\Server;
require 'vendor/autoload.php';
$app = new MiddlewarePipe();
$server = Server::createServer($app, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES);
// Injected for all the URL
@ezimuel
ezimuel / global.php
Created December 9, 2014 12:33
Example: OAuth2 configuration for Apigility
// config/autoload/global.php
// ...
'router' => array(
'routes' => array(
'oauth' => array(
'options' => array(
'route' => '/oauth',
),
),
@ezimuel
ezimuel / test_bench.php
Created March 8, 2017 12:15
MD5 vs. preg_replace_callback for PDOStament::bindParam() usage in zend-db
<?php
// Testing md5 vs. preg_replace_callback()
$execPreg = 0;
$execMd5 = 0;
for ($i=0; $i<100000; $i++) {
$name = randomName(10);
$start = microtime(true);
$result = preg_replace_callback(
@ezimuel
ezimuel / .htaccess
Created March 14, 2017 16:15
Create a PHP deploy package .zpk for Zend Server
RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The
# condition ensures that if you are using Apache aliases to do
@ezimuel
ezimuel / bench_PHP7_results.md
Last active September 17, 2019 12:10
Benchmarking execution times of PHP from 7.1 to 7.4

Benchmarking execution time of PHP from 7.1 to 7.4

In this experiment, I tested the execution time of the script Zend\bench.php available in the PHP socurce code. I tested the latest PHP versions available, as follows:

  • PHP 7.1.32
  • PHP 7.2.22
  • PHP 7.3.9
  • PHP 7.4RC1
@ezimuel
ezimuel / server.php
Created May 31, 2018 14:11
Simple Hello World! HTTP server in PHP with Swoole
<?php
$http = new swoole_http_server("127.0.0.1", 9501);
$http->on("start", function ($server) {
var_dump($server);
echo "Swoole http server is started at http://127.0.0.1:9501\n";
});
$http->on("request", function ($request, $response) {
var_dump($request);
@ezimuel
ezimuel / api.php
Last active June 12, 2020 15:11
Simple API for overriding functions and method of classes
<?php
// APIs for overriding functions and methods of classes
override_class_function(string $class, string $method, Closure $callback);
override_function(string $function, Closure $callback);
call_orginal_function(array $params);
// Example of usage override_function()
override_function('curl_exec', function(){
$params = func_get_args();
echo "--- BEFORE ---";
@ezimuel
ezimuel / benchmark.md
Created July 15, 2020 09:29
Benchmarking PHP 8 alpha2

Benchmarking PHP 7.4.7 vs. PHP 8 alpha2

I executed the Zend\bench.php file using PHP 7.4.7 and PHP 8 alpha2.

I used a CPU Intel i9-8950HK at 2.90GHz with 32GB RAM running Ubuntu 18.04.4 LTS.

I compiled PHP 8 alpha2 using the official php.net source and installed in /opt/php/php8. I used the following configure options:

./configure --prefix=/opt/php/php8 --enable-opcache --with-zlib --enable-zip --enable-json --enable-sockets --without-pear
@ezimuel
ezimuel / benchmark.md
Created September 23, 2020 11:50
Benchmarking PHP 7.4.10 vs. PHP 8.0.0 beta4

Benchmarking PHP 7.4.10 vs. PHP 8.0.0 beta4

I executed the Zend\bench.php file using PHP 7.4.10 and PHP 8 beta4.

I used a CPU Intel i9-8950HK at 2.90GHz with 32GB RAM running Ubuntu 18.04.4 LTS.

I compiled PHP 8 beta4 using the official php.net source and installed in /opt/php/php8. I used the following options:

./configure --prefix=/opt/php/php8 --enable-opcache --with-zlib --enable-zip --enable-json --enable-sockets --without-pear