than PHP 5.2 1.2 times faster than PHP 5.2 • 3.5 times faster than PHP 5.0 3.5 times faster than PHP 5.0 • 4.5 times faster than PHP 4 4.5 times faster than PHP 4 • 29.25 times faster than PHP 3 29.25 times faster than PHP 3 WTF times 2!! WTF is this doing here?
like what TIVO did for TV For frameworks, that's like what TIVO did for TV • Or like what Facebook did for stalking ex girlfriends Or like what Facebook did for stalking ex girlfriends • Or even what Or even what GIT GIT did for source code collaboration did for source code collaboration PS 1: Notice how subtle I was to introduce GIT PS 2: I should also point out how Apple is not in this list
unbelievably new and so unheard of magic work, really? unheard of magic work, really? • Ok so variables are zval Ok so variables are zval – Real variables Real variables – References through References through refCount refCount $a = 'Linux rocks'; $b = $a; xdebug_debug_zval($a); unset($b); xdebug_debug_zval($a); $c = &$a; xdebug_debug_zval($c); a: (refcount=2, is_ref=0)='Linux rocks' a: (refcount=1, is_ref=0)='Linux rocks' a: (refcount=1, is_ref=1)='Linux rocks' I'm not ashamed to say it: I want to marry xdebug
namespace e360\acme class AwfulClass { public function __construct() { throw new \Exception(“Your code never works”); } } $sucks = new \e360\acme\AwfulClass(); echo get_class($sucks); → e360\acme\AwfulClass
Unicode created a whole discussion regarding PHP 6 Yeah, Unicode created a whole discussion regarding PHP 6 • But already in trunk... But already in trunk... TRAITS TRAITS!! !!
protected function deserialize() { // .... } } class Item extends AppModel { use e360Serializer; // ... } class ItemPdf extends Item { use e360JSONSerializer; public function serializable() { return true; } // ... } trait e360JSONSerializer { use e360Serializer; protected function serialize() { // ... } protected function deserialize() { // .... } abstract public function serializable(); }