[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