Skip to content

Instantly share code, notes, and snippets.

Avatar

Alexander Lisachenko lisachenko

View GitHub Profile
@lisachenko
lisachenko / fix_ace.sql
Created Jan 29, 2019
Symfony ACL reorder ACE
View fix_ace.sql
DELIMITER ;;
DROP PROCEDURE IF EXISTS fix_ace_order;
CREATE PROCEDURE fix_ace_order()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE acl_id INT;
DECLARE acl_cursor CURSOR FOR SELECT o.id
FROM acl_object_identities o
LEFT JOIN acl_entries e ON (
e.class_id = o.class_id AND
@lisachenko
lisachenko / instantinators.php
Created Aug 1, 2018
Private class instantinators
View instantinators.php
<?php
/**
* Sealed class can not be created directly
*/
class Seal
{
private function __construct()
{
// private ctor prevents from direct creation of instance
}
View FCGIServer.php
<?php
use Protocol\FCGI;
use Protocol\FCGI\FrameParser;
use Protocol\FCGI\Record\BeginRequest;
use Protocol\FCGI\Record\EndRequest;
use Protocol\FCGI\Record\Params;
use Protocol\FCGI\Record\Stdin;
use Protocol\FCGI\Record\Stdout;
@lisachenko
lisachenko / test.php
Created Mar 6, 2015
Method accessor as closures
View test.php
class MagicMethodAccessor {
public function test()
{
echo 'Cool';
}
final public function __get($name)
{
if (method_exists($this, $name)) {
$method = (new ReflectionMethod($this, $name))->getClosure($this);
@lisachenko
lisachenko / Example.php
Last active Dec 21, 2015
Autowiring preview
View Example.php
<?php
use Warlock\Annotation\Autowired;
class Example
{
/**
* @Autowired("logger", required=true)
* @var LoggerInterface
@lisachenko
lisachenko / Hydrator.php
Created Jun 27, 2013
Fastest hydrator
View Hydrator.php
<?php
class Test {
private $a='data';
protected $b=123;
public $c=true;
}
@lisachenko
lisachenko / GetterLoggerAspect.php
Last active Dec 18, 2015
Zend framework getters
View GetterLoggerAspect.php
<?php
namespace Aspect;
use Go\Aop\Aspect;
use Go\Aop\Intercept\MethodInvocation;
use Go\Lang\Annotation\After;
use Go\Lang\Annotation\AfterThrowing;
use Go\Lang\Annotation\Before;
use Go\Lang\Annotation\Around;
@lisachenko
lisachenko / PrivilegedAspect.php
Created May 25, 2013
Preview of privileged advices in the Go! AOP PHP framework
View PrivilegedAspect.php
<?php
use Go\Aop\Aspect;
use Go\Aop\Intercept\MethodInvocation;
use Go\Lang\Annotation\Around;
/**
* Privileged aspect shows the power of privileged advices.
*
* Privileged advice is running in the scope of target for the current joinpoint
@lisachenko
lisachenko / test.php
Created Mar 19, 2013
Check your PHP knowledge #1
View test.php
<?php
function hello() {
echo 'Hello, magic PHP!';
}
function getCallback() {
return 'hello';
}
$result = ${'_'.!$_=getCallback()}();
@lisachenko
lisachenko / test.php
Created Mar 13, 2013
Check your PHP knowledge
View test.php
<?
data : {
a: 10;
b: {
echo 'Test';
};
logic: function() {
echo "Hello, world!";