woensdag 17 september 2008

PHP Architectuur

Na de weinig spectaculaire keynote nu een presentatie van Elisabeth Smith over PHP Architectuur. Ik verwacht er veel van en, gezien de opkomst in het zaaltje, de anderen ook. Eerste keer dat ik een zaaltje 'uitverkocht' zie. Haar statement is heel duidelijk: zaken die draaien op PHP5 zijn toch anders dan zaken die geschreven zijn voor PHP5. Duidelijk ADV (advanced) dus ik ga mijn best doen het bij te houden.

Een belangrijke Rule Zero: C is altijd sneller dan PHP (aangezien PHP uiteindelijk op C is gebouwd).

Overpeinzingen
En gelijk wat dingen over PHP5: als je nog bij 5.0 of 5.1 bent... direct upgraden naar 5.2.6. En ja, PHP is OO maar ook precedureel kun je leuke dingen doen, aldus Elizabeth.

Toolbox
Eerst een stukje over Visibility, maar dit is standaard Public, Private en Protected zoals ook in de ZCE certificering zit. Ook vertelt ze over Magic Methods, oftewel alle methodes met __ (double underscore) ervoor, zoals __clone (en dat je met MM voorzichtig moet zijn). Dan een kort stukje over Interfaces en het voordeel daarvan (meervoudige implementaties van interfaces in een class). Dan over Abstract Classes, oftewel Global Classes, gelijk aan interfaces met die restrictie dat je daarvan in een klasse maar één instantie kunt hebben. Tot nu toe, allemaal ZCE stuff die ik maandag ook al heb gehoord.
Dan iets nieuws voor me, namelijk Overloading. Belangrijk hierbij is dat je het wel documenteert én becommentarieërt (net zoals Magic Methods). Dan het voordeel van Class Constants (leeghouden van je Global constants) en Autoload en het bijbehorende gebruik van spl_autoload_stack().

Prcedural & extentions
Dan het gebruik van Steams en Filters. Een klein codestukje voor een filter:

$fp = fopen ('php/output','w');
stream_filter_append(etc)
stream_filter_prepend(etc)
fwrite()
file_put_contents(url, "this is a test");


Dan volgt er een stukje over de nieuwe gave dingen in PHP 5.2.x, een lange lijst functies. Ook vertelt ze over SPL, de Standard PHP Libarary (ook al een onderdeel van ZCE).
PDO is een Database Access Layer waarmee je makkelijk dB toegang kunt maken. Je kunt er bijvoorbeeld Prepared Statements mee maken, zelfs als de dB dat niet ondersteunt. MySQLi heeft twee API's om de MyQQL Improved te gebruiken. JSon is JavaScript Object Notation en ku je bereiken via json.org. Elizabeth zegt dat het erg veel en veel sneller kan zijn dan PHP. Vergeet ook niet dingen te schonen met Filter. SimpleXML is eigenlijk een vereenvoudigde versie van XML voor luie ontwikkelaars, oftewel XML for dummies, ook gebouwd in C overigens.

Architecting for PHP5
De kernboodschap hier is: Gebruik meer C en gebruik meer Design Patterns. En 'begin bij het begin'. Verder wat tips over architectuur zoals 'gebruik de krachten van PHP en vermijdt de zwakheden'. (duh!) Sterk bijvoorbeeld is http_build_query, gebruik SPL met recursivedirectoryiterator en andere zaken.

En voor de laatste keer de reminder: C is sneller dan PHP... gebruik dus ook wat je al hebt en gebruik niet PHP alleen maar omdat het PHP is. :)

Al met al een leuke presentatie, maar wel grotendeels gewoon een ZCE herhaling.

Geen opmerkingen: