Milan Kryl

Kryl Blog - RSS

PHP 5 podrobně

21. 07. 2004 - 06:00

Nedávno jsem stručně informoval s čím přichází PHP 5.0.0 Dnes přináším podrobnější pohled na nejzajímavější novinky.

V roce 1998 přišla verze PHP 3, která mimo zvýšení rychlosti přinesla i novou funkcionalitu. PHP 4 přinesla další zrychlení nazvané jako Zend Engine. Ačkoliv málo viditelné zlepšení, dopomohlo k většímu používání PHP pro tvorbu webu.

Po šesti letech jsme se konečně dočkali další inovace. V PHP 4 chybělo mnoho funkcí v objektově orientovaném programování. Rozšíření pro MySQL nepodporovalo novější 4.1 verzi komunikačního protokolu. A o XML ani nemluvě.

PHP 5 konečně zlepšuje PHP 4 ve třech důležitých oblastech:

  • objektově orientované programování
  • MySQL
  • XML

Ačkoliv jsou tyto oblasti nejdůležitější, s novou verzí se objevilo i mnoho dalších vylepšení, které ale nebudou zmíněné v tomto příspěvku.

Zmíním jen ty nejdůležitější, které dopomohou k efektivnějšímu, rychlejšímu a pohodlnějšímu psaní kódu.

Robustní podpora OOP

Uživatelé požadovali rozšíření podpory OOP. Nyní se mohou těšit z následujících přidaných funkcí:

  • konstruktory
  • destruktory
  • public, protected a private proměnné a metody
  • interfacy
  • abstraktní třídy
  • statické proměnné a metody

Navíc jsou objekty vždy přiřazovány a volány pouze odkazem (není třeba přidávat & pro nahrazení volání hodnotou. Děje se tak automaticky.

Pokud při své tvorbě rádi používáte objekty a vzory (patterns), tak je to právě pro vás.

Kompletní přepis MySQL rozšíření

Protože nejeden vývojář tvoří ruku v ruce v PHP a v MySQL, tak bylo třeba s ohledem na vycházející nové verze 4.x a 5.x přepsat i rozšíření komunikující s databází.

Nové rozšíření nabízí:

  • připravené dotazy
  • vázané vstupní a výstupní parametry
  • SSL připojení
  • funkce pro multidotazování

MySQLi (jak je pojmenováno nové rozšíření) využívá i objektového rozšíření pětkové verze a nabízí objektově orientované rozhraní.

Souprava spolupracujícíh XML nástrojů

PHP 5 opravuje hlavně problém s XML rozšířením čtyřkové verze. PHP 4 umožňuje manipulaci s XML pouze povrchně, PHP 5 ne.

  • pracuje dohromady jako celek
  • standardizováno na jedné XML knihovně libxml2
  • plně vyhovuje specifikaci W3 konsorcia
  • efektivně zpracovává data

Protože tvorba aplikací pro web by měla být co nejjednodušší, tak je tu nové XML rozšíření, které umožní jednoduše číst a modifikovat XML dokumenty. Trefný název říká vše SimpleXML. Umožňuje přistupovat k XML datům jako do pole nebo k objektům. Iterace za pomoci foreach konstrukcí a změna hodnoty pouhým přiřazením nové hodnoty.

Pokud znáte formát XML dat, není problém načítat RSS, konfigurační data a podobně.

Fanoušci DOM objektů využijí rozšíření DOM, které je mnoho světelných let vzdáleno od toho, co obsahuje PHP 4.

Embedded databáze za pomoci SQLite

Rozhraní, které nepoužívá pro ukládání dat databázi. V některých případech může být výkonější než databáze. Není dobré odvozovat funkce z názvu - Lite - totiž vůbec není. Dokazují to i podporované funkce:

  • transakce
  • poddotazy
  • triggery
  • a mnoho dalších pokročilých databázových funkcí

Také je možné vytvořit vlastní uživatelsky definované funkce, které budou volány z tohoto databázového rozšíření.

Čistější ošetřování výjimek za pomoci výjimek

Úplně nový přístup k ošetřování chyb je zapracován do nového PHP. Místo jednotlivých kontrol je možné používat ošetřování výjimek. Je tak možné lépe oddělit logickou část programování a ošetřování chyb.

Stejně jako v Javě a nebo C++ jej najdete i v novém PHP.

Prvotřídní implementace SOAP

SOAP se stává mnohem častěji nedílnou součástí většiny nových webových služeb. Toto rozšíření umožní vývojářům tvořit SOAP klienty s nebo bez Web Service Description Language (WSDL) a také implementovat SOAP servery.

Ačkoliv tu již je několik SOAP balíčků napsaných přímo v PHP, žádný z nich nebyl napsán jako rozšíření (v C) a to bylo znát na jejich rychlosti.

Aktuálně implementované rozšíření SOAP podporuje většinu ze SOAP 1.2 a další části budou postupně doplněny.

Iterátory

Kompletně nová vychytávka v PHP 5. Pro různé typy dat můžete používat jednoduchý foreach na jejich procházení. Ať se již jedná o výpis adresářů, výsledky databáze a nebo XML dokumenty. SPL - Standard PHP Library - knihovna základních iterátorů, včetně limitů, cacheování, filtrování a modifikaci výsledků jednotlivých iterátorů.

Iterátory jsou neuvěřitelně vhodné pro abstraktnější pohled na nepřehledný detailní kód.

Například DirectoryIterator změní následující kód:

$dir = opendir($path);
while (false !== ($file = readdir($dir))) {
    print "$file\n";
}
closedir($dir);

změní na:

foreach (new DirectoryIterator($path) as $file) {
    print "$file\n";
}

Není třeba používat nepěkné podmínky vně ani uvnitř cyklu.

Další zajímavé fuknce

Sedm výše jmenovaných samozřejmě není vše, co vám nové PHP 5 nabízí, ale jde spíše o tu nejzajímavější špičku ledovce. Můžete se také těšit na:

  • vylepšené streamy, wrappery a filtry
  • sebepozorování za pomoci reflection tříd
  • korektní HTML výstup díky Tidy
  • vynikající funkčnost při volání z příkazové řádky

Volně přeloženo z článku: Why PHP 5 Rocks! - Adam Trachtenberg

 

Tip: Krátké zprávy a zajímavosti (rychlý přístup https://kryl.info/kratce)