Skip to content

Instantly share code, notes, and snippets.

View geerteltink's full-sized avatar
🏠
Home office

Geert Eltink geerteltink

🏠
Home office
View GitHub Profile
<?php
namespace App\Application\Console;
class CreateMiddleware
{
/**
* @var string Template for middleware class.
*/
const MIDDLEWARE_SKELETON = <<< 'EOS'
@geerteltink
geerteltink / GreetCommand.php
Last active June 1, 2017 12:57
Symfony Console ProxyCommand
<?php
namespace App\Console;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
@geerteltink
geerteltink / FileLevelDocBlockSniff.php
Created April 7, 2017 17:16
Zend Framework source file docblock license validation PoC
<?php
/**
* @see https://github.com/zendframework/zend-coding-standard for the canonical source repository
* @copyright https://github.com/zendframework/zend-coding-standard/blob/master/COPYING.md Copyright
* @license https://github.com/zendframework/zend-coding-standard/blob/master/LICENSE.md New BSD License
*/
class ZendCodingStandard_Sniffs_Commenting_FileLevelDocBlockSniff implements \PHP_CodeSniffer_Sniff
{
private $changedFiles;
@geerteltink
geerteltink / InteropHttpMiddleware.php
Created November 17, 2016 19:22
Expressive and PSR-15 interfaces for HTTP middleware
<?php
namespace App\Middleware;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Interop\Http\Middleware\ServerMiddlewareInterface;
use Interop\Http\Middleware\DelegateInterface;
/**
@geerteltink
geerteltink / docker-cleanup
Created November 2, 2016 14:03
Bash script to remove Docker containers, images and volumes.
#!/bin/bash
# remove exited containers:
docker ps -aq --filter status=dead --filter status=exited | xargs -r docker rm -v
# remove unused images:
docker images -qf dangling=true --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi
# remove unused volumes:
docker volume ls -qf dangling=true | xargs -r docker volume rm
@geerteltink
geerteltink / eventmanager.php
Created November 1, 2016 20:33
ZF3 standalone EventManager with LazyListeners
<?php
use App\Infrastructure\EventManager\Listener\AnotherListener;
use App\Infrastructure\EventManager\Listener\UserLoginListener;
use Zend\EventManager\LazyListenerAggregate;
use Zend\ServiceManager\Factory\InvokableFactory;
use Zend\ServiceManager\ServiceManager;
chdir(dirname(__DIR__));
require __DIR__ . '/vendor/autoload.php';
@geerteltink
geerteltink / AWS_SES_API_Parallel_test.php
Last active September 15, 2017 12:08
AWS SES API parallel test. A fast way to send multiple emails with SES.
<?php
// http://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html
// http://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CommandPool.html
require __DIR__ . '/vendor/autoload.php';
use Aws\CommandInterface;
use Aws\CommandPool;
use Aws\Exception\AwsException;
@geerteltink
geerteltink / JsonErrorHandler.php
Last active October 5, 2016 13:07
JsonErrorHandler
<?php
declare(strict_types = 1);
namespace Application\ErrorHandler;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Log\LoggerInterface;
use Zend\Diactoros\Response\JsonResponse;
@geerteltink
geerteltink / Contract Killer 3.md
Created October 4, 2016 15:05 — forked from malarkey/Contract Killer 3.md
The latest version of my ‘killer contract’ for web designers and developers

Contract Killer

The popular open-source contract for web professionals by Stuff & Nonsense

  • Originally published: 23rd December 2008
  • Revised date: March 15th 2016
  • Original post

<?php
namespace App\I18n;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Zend\Diactoros\Response\RedirectResponse;
use Zend\I18n\Translator\Translator;
use Zend\Stratigility\MiddlewareInterface;