Gravitonic
saturday, may 17, 2008  
andrei zmievski

"Science is like sex: sometimes something useful comes out,
but that is not the reason we are doing it." — Richard Feynman

This page is dedicated to my work with PHP. If you find it useful and would like to buy me a present, check out my wishlist or see the Amazon Honor System Paybox on this page.

Contributions

Amazon Honor System Click Here to Pay Learn More
I've started contributing to PHP development in late 1998, and since then I've done a few things.
  • PHP-GTK
  • Extensions: Perl-compatible regular expressions, WDDX support, PHP code tokenizer, userspace object overloading, object aggregation
  • Console_Getopt PEAR class
  • Session extension additions
  • A variety of array and other functions
  • Zend engine contributions
  • Smarty template engine
  • Online PHP code browsing (Bonsai/LXR)
  • Automated ChangeLog generation

Software

Please see downloads page.

Patches

These are unofficial patches for PHP. Currently (un)available ones are:
  • Case-sensitivity [ZendEngine2]
    This patch removes the horrible mutation that is the case-insensitivity feature of PHP. But it doesn't work against the current CVS. And even if it did, convincing the other half of PHP developers that it's necessary is futile. So just go get a beer instead.
  • is operator [ZendEngine2]
    Update: This has been implemented in Zend Engine 2 as instanceof operator now. The patch is somewhat obsolete, then.
    Introduces new operator is which can be used to find out whether a value is of a certain type or class. It obviates the need for all the is_*() type query functions, including is_a(). Example:
    <?php
    class foo {
    }
    
    class bar extends foo {
    }
    
    class zoo {
    }
    
    $a = new bar;
    $b = 5;
    $c = "test";
    
    var_dump($a is bar);
    var_dump($a is foo);
    var_dump($a is zoo);
    var_dump($b is (int));
    var_dump($c is (bool));
    ?>
    
    
  • Concatenation and object operator change [ZendEngine2]
    Update: probably doesn't work against current CVS. It was a crazy idea anyway.
    Inspired by Larry Wall's talk on Perl 6. This patch changes concatenation operator to be ' _ ' (note the whitespace) instead of . (dot), and object operator -> to the newly available . (dot). Looks much better and easier to type, IMHO. Example:
    $a = 'a' _ 'b';
    var_dump($a);
    $b = $a
         _ $a;
    var_dump($b);
    $b _= '55';
    var_dump($b);
    
    class foo {
      var $bar;
    
      function blah()
      {
         print "hey\n";
      }
    }
    
    $c = new foo;
    var_dump($c.bar);
    $c.blah();
    

Copyright © 2002-2007 Andrei Zmievski
All rights reserved.
Last updated: Sat Mar 25 07:05:49 2006 PST
ilovewhiterussians.com