NYCPHP Meetup

NYPHP.org

[nycphp-talk] FW: [PHP] OO purism sucks - sell me on PHP5?

Jon Baer jonbaer at jonbaer.com
Sat Jun 3 11:50:47 EDT 2006


Nice list ... Id probably also add the ~native~ builtin calls to  
__get, __set, and __call in there as well ... (vs. having to always  
call overload()).

- Jon

On Jun 3, 2006, at 10:58 AM, Hans Zaunere wrote:

>
>
> A nice outline from Rasmus on PHP 5.
>
> ---
> Hans Zaunere / President / New York PHP
>    www.nyphp.org  /  www.nyphp.com
>
>
> Rasmus Lerdorf wrote on Friday, June 02, 2006 12:01 PM:
>> tg-php_ at gryffyndevelopment.com wrote:
>>
>>> "If it ain't broke, don't fix it" works for a while, but if there
>>> are easier and/or better ways to do things in PHP5, I want in!  So
>>> someone sell me on this from the point of view of someone who's
>>> upgraded and has learned the joys of PHP5.  So far what I've found
>>> online has been little more than a list of new features without an
>>> idea of how much of a headache they're going to save me in the
>>> future.
>>
>> To me the main user-visible benefits of going to PHP 5 are (ignoring
>> the OO changes for now):
>>
>> 1. Simplexml
>>
>> eg. One-line RSS parser (of Flickr's upload queue feed)
>>
>>    $url = 'http://www.flickr.com/services/feeds/photos_public.gne';
>>    foreach(simplexml_load_file($url)->entry as $it) echo $it- 
>> >content;
>>
>>
>> 2. Much improved DOM support
>>
>> eg. various things you can do to a DOM
>>
>>    // First, load your XML document into a DOM
>>    $dom = domdocument::load('test.xml');
>>
>>    // Apply a stylesheet to the dom
>>    $proc = new xsltProcessor;
>>    $proc->importStyleSheet($domxsl);
>>    echo $proc->transformToXML($dom);
>>
>>    // xpath query on the dom
>>    $ctx = new domXPath($dom);
>>    $result = $ctx->query('/top/child[@attr > 3]/foo/text()');
>>    foreach($result as $node) {
>>      echo $node->nodeValue;
>>    }
>>
>>    // pull it into simplexml and access it
>>    $s = simplexml_import_dom($dom);
>>    echo $s->child[0]->foo;
>>
>>
>> 3. xmlreader/xmlwriter
>>
>> eg. SAX document validation using xmlreader
>>
>>    $reader = new XMLReader();
>>    $reader->open('test.xml');
>>    $reader->setParserProperty(XMLReader::VALIDATE, true);
>>    while($reader->read());
>>    echo $reader->isValid();
>>
>>
>> 4. PDO
>>
>> eg. Prepare execute against MySQL with named parameters
>>
>>    $pdo = new PDO('mysql:dbname=testdb');
>>
>>    $sql = 'SELECT name, colour, calories
>>            FROM fruit
>>            WHERE calories < :calories AND colour = :colour';
>>    $prep = $pdo->prepare($sql);
>>    $prep->execute(array(':calories' => 150, ':colour' => 'red'));
>>    $red = $prep->fetchAll();
>>
>>
>> 5. SOAP
>>
>> eg. Exposing your PHP code as a SOAP web service
>>
>>    function Add($x,$y) {
>>      return $x+$y;
>>    }
>>    $server = new SoapServer(null,array('uri'=>"http://test-uri/"));
>>    $server->addFunction("Add");
>>    $server->handle();
>>
>>
>> 6. SPL
>>
>> eg. Iterating over entries in a directory
>>
>>    $dir = new DirectoryIterator('.');
>>    foreach($dir as $ent) echo $ent;
>>
>>
>> 7. Filter
>>
>> eg. Define a default filter and use form input safely without
>>      cluttering up your code with htmlspecialchars() calls everywhere
>>      and provide easily auditable access to the unfiltered data
>>
>>    php.ini: filter.default = special_chars
>>
>>    echo $_POST['data'];
>>    $raw = input_get(INPUT_POST,'data', FILTER_UNSAFE_RAW);
>>
>>
>> 8. Native Date/Time mechanism
>>
>> Date/time functions now behave exactly the same way on every platform
>> regardless of the differences in locales if you choose to use the
>> native mechanism.
>>
>> Beyond that the compiler produces smaller opcode arrays and the
>> executor is faster.  Not a directly visible thing, and this is still
>> improving, but definitely a plus.
>>
>> Note that for all of this I am referring to PHP 5.1.x, not 5.0.x.
>>
>> -Rasmus
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
> New York PHP Conference and Expo 2006
> http://www.nyphpcon.com
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php
>
>




More information about the talk mailing list