Recenze: Jiří Kosek – PHP a XML

Po několik předchozích týdnů jsme se každé pondělí setkávali na tomto místě s úryvky z knihy Jiřího Koska, která nese název „PHP a XML“ a kterou letos v říjnu vydalo nakladatelství Grada. Autor přednesl některá témata z knihy i ve své přednášce na konferenci WebExpo. Pojďme se na knihu podívat podrobněji.

Psát recenzi na knihu Jiřího Koska není snadný úkol, obzvlášť pro člověka, který pracuje delší dobu s PHP. Jiří Kosek je totiž mezi PHPčkaři legenda díky své, dnes již klasické, knize „PHP: Tvorba interaktivních internetových aplikací“, která vyšla v roce 1999 (zájemci si ji mohou stáhnout ve formátu PDF zdarma). A ačkoli dnes je tato kniha fakticky zajímavá především z historického hlediska, ve své době byla dlouho nejlepší dostupnou literaturou o PHP, z níž se učili používat PHP snad všichni dnešní profesionální PHP vývojáři.

Fedora 12

Sám autor dnes přiznává, že PHP nepoužívá a že jej považuje za překonané, ale na druhou stranu přiznává, že i přes nedostatky, kterými PHP trpí, stále zůstává nejpoužívanější platformou pro vývoj serverových částí webových aplikací.

XML je v současnosti pravděpodobně jediný široce přijímaný standardní formát pro výměnu dat. Svého času bylo prezentováno div ne jako všelék na všechny problémy, co se v IT v souvislosti s datovými formáty objevovaly. Dnes je pohled na XML o něco střízlivější, ale i tak je XML základem mnoha formátů, s nimiž se programátor webových aplikací pracující v PHP setká, formáty RSS a ATOM počínaje, přes SVG až po XHTML, MXML (Flash/Flex) či XAML (Silverlight). XML je i v pozadí AJAXu, základní RIA technologie. Znalost XML by měla být pro každého, kdo s webem pracuje, samozřejmostí.

Ve své nové knize, která nese všeříkající název „PHP a XML“, se Jiří Kosek věnuje právě práci s XML formátem v prostředí jazyka PHP. Popisuje bohaté možnosti, které vývojář v PHP ve verzi 5 v této oblasti má (příklady v knize byly testovány s verzí PHP 5.2), podrobně rozebírá jejich silné stránky a nezamlčuje slabiny, aby si každý mohl náležitě vybrat.

O tom, že téma je mezi vývojáři hojně diskutované a že vývojáře zajímá, svědčí i bohatá diskuse u seriálu Přehled podpory XML v PHP.

Obsah

Kniha začíná kapitolou, která pojednává o syntaxi XML. Na třiadvaceti stránkách, o nichž autor tvrdí, že je může přeskočit „každý, kdo zná XML dobře“, jsou shrnuty základní informace o XML, a to včetně jmenných prostorů, entit či speciálních atributů. Je třeba říct, že text předpokládá u čtenáře určité znalosti, pravděpodobně se z něj XML nenaučíte, ale slouží jako velmi dobré shrnutí důležitých vlastností a jako příprava na další text. Na rozdíl od autora bych doporučil tuto kapitolu nepřeskakovat – osvěží znalosti a pomůže zkoncentrovat pozornost.

Druhou kapitolu čtenáři Zdrojáku již znají – seriál Přehled podpory XML v PHP vychází právě z textu druhé kapitoly Koskovy knihy. Shrnuje možnosti práce s XML v PHP, od jednoduchých SimpleXML a SAX přes XMLReader k DOM, XPath a XSLT.

Pokud chcete získat přehled o XML a možnostech jeho použití v PHP, máte po prvních dvou kapitolách splněno – získáte představu o možnostech XML a práce s tímto formátem, a dokážete zhruba odhadnout, jaký nástroj bude pro vaše zamýšlené použití nejlepší. Po dvou kapitolách tedy čtenář ví, co může použít. Zbytek knihy se věnuje odpovědi na otázku Jak?

Ale než se čtenář dostane k tomu JAK pracovat, čeká ho třetí kapitola, která se věnuje na první pohled nesouvisejícímu tématu, a to podpoře (či podle autora spíš nepodpoře) Unicode v PHP. Podrobně a srozumitelně je popsána problematika kódování textů a to, jak se s ní v PHP prakticky vypořádat.

Po třech úvodních kapitolách se kniha věnuje podrobně jednotlivým nástrojům, a to v rozsahu adekvátním jejich schopnostem (a náročnosti používání). Zde jde autor už do hloubky, ale přesto nemá čtenář dojem, že jej zahlcuje nepodstatnostmi. V žádném případě to ale neznamená, že by autor zamlčoval některé detaily – i když nejsou podstatné pro výklad v tu chvíli, poctivě je zmíní, stejně jako poctivě zmiňuje u příkladů míru zjednodušení a případné problémy, na které by mohl čtenář při vlastní implementaci v praxi narazit.

Čtvrtá kapitola pojednává o SimpleXML, pátá o SAX, tedy o jednoduchých metodách pro čtení XML dokumentu. Šestá kapitola se zabývá prací s rozhraním DOM. DOMu je věnovaná poměrně velká část knihy a jeho použití v PHP je probráno ze všech možných stran. V šesté kapitole nalezne čtenář informace o čtení XML dokumentu i o jeho modifikování.

Sedmá kapitola zase trochu poleví ve stoupající náročnosti a věnuje se XMLReaderu. Není mi jasné, proč je tato několikastránková kapitola až za obří kapitolou o DOMu – myslím že logikou i náročností by patřila někam za SimpleXML.

V další části knihy se PHP poněkud vytrácí do pozadí a těžiště výkladu stojí na XML technologiích, jako jsou XPath, XSLT a schémata (Relax NG, Schematron, DTD). Jedna kapitola je věnována i validaci XML dokumentů. Autor popisuje práci s těmito technologiemi, které jsou do určité míry soběstačné a na konkrétním jazyce v pozadí nezávislé. PHP je v tomto výkladu v roli podpůrné kostry, která má za úkol zavolat funkci pro zpracování a vypsat výsledek, většina podstatného se odehrává mimo zorné pole PHP – s výjimkou popisu volání PHP funkcí v XSLT.

Tyto čtyři kapitoly zabírají téměř polovinu celé knihy (která má, mimochodem řečeno, 370 stran). PHP v nich je minimálně, ale přesto (nebo právě proto) jsou pro PHP vývojáře zajímavé. Seznamují čtenáře, kterým je pravděpodobně PHP praktik, s barevným světem XML technologií a ukazují, že velká část úloh spojených s XML je řešitelná jinak než algoritmem v PHP.

Kniha končí stručnou zmínkou o webových službách (SOAP, REST) a praktickou minikapitolkou „Jak generovat XML“.

Chcete se naučit o PHP víc?

Akademie Root.cz pořádá školení Kurz programování v PHP5. Jednodenní kurz programování v PHP 5 je určen všem webovým vývojářům, kteří se chtějí do hloubky seznámit a sžít s programovacím jazykem PHP ve verzi 5. První část kurzu je zaměřena na nový objektový model se všemi jeho vlastnostmi, ošetření chyb pomocí výjimek a efektivní využití těchto konceptů. Druhá část je zaměřena na nové knihovny PHP 5, především pro práci s databázemi, XML a objekty. Pozornost je věnována i zajištění kompatibility s PHP 4, přechodu z této verze a výhledu na PHP 6. Máte zájem o jiné školení? Napište nám!

Resumé

Kniha PHP a XML od Jiřího Koska rozhodně nezklame. Pokud pracujete v PHP a chtěli byste se naučit víc o možnostech práce s dokumenty ve formátu XML, je tato kniha naprosto ideálním materiálem. Získáte z ní jednak obecný přehled o možnostech zpracování XML, jednak i důkladné informace o jednotlivých metodách – od základních kroků „Jak to nastavit“ a „Jak načíst dokument“ až po popis zpracování chyb či možností rozšíření či integrace do větších celků. Naprosto neocenitelná je druhá část knihy (o XML technologiích), v níž jsou informace, které jsou většině programátorů v PHP, pokud nepřišli např. ze světa Javy či enterprise aplikací, víceméně neznámé. Výklad však nikdy nesklouzne k akademické nezáživnosti (nelze jej rozhodně srovnávat s knihami, které na mnoha stech stranách popisují např. XPath). Přitom je relativně podrobný a ucelený, takže ze začátečníka dokáže udělat mírně pokročilého, aniž by jej zahltil spoustou teorie bez praktického ukotvení.

Výhrady bych měl snad jen k řazení kapitol, kdy například po komplexním DOMu přijde odlehčený XMLReader, nebo k zařazení webových služeb (dokonce bych byl na vážkách, zda do této knihy webové služby vůbec patří). Po mém soudu by název „XML a PHP“ (nebo „XML v PHP“) odpovídal obsahu knihy přesněji – o PHP samotném v knize moc není.

Z reakcí čtenářů zde na Zdrojáku bylo patrné, co někteří zkušení vývojáři a odborníci na PHP autorovi vyčítají – např. to, že příklady nejsou komplexní či že ve výkladu nepoužívá důsledně objekty. Zde bych se autora zastal: Je důležité mít na paměti, že nejde o učebnici – kniha si neklade za cíl učit někoho PHP nebo XML. Jde v první řadě o úvod do problematiky XML pro PHP vývojáře. Není určená pro naprosté začátečníky, jejím čtenářem by měl být vývojář, který už PHP zná a který XML viděl. V žádném případě bych tedy Koskovi nevyčítal, že příklady v knize nejsou objektové, že nejsou „dotažené“ a „obecné“, že nejsou „akademicky čisté“ – v tomto směru spíš oceňuji jejich jednoduchost a minimum balastního kódu (jinak potřebného k tomu, „aby to bylo správně“). Příklady se nezabývají „omáčkou okolo“, ale jdou rovnou k rysu, který je třeba demonstrovat, i za cenu určité syrovosti kódu. Pokud by byly v knize pro začátečníky, dalo by se polemizovat o tom, zda je opravdu vhodné používat k demonstracím např. procedurální styl (a předávat tak zastaralé návyky), ale v takto zaměřené knize takovéhle příklady určitě nevadí.

I pro čtenáře, který s těmito technologiemi už pracoval, může být kniha zajímavá a užitečná, ať už jako pohotová referenční příručka, nebo jako kniha před usnutím – Jiří Kosek je zkušený autor a jeho texty nejsou nudné ani neživotně suché. Kosek se prostě dobře čte, což pohříchu nebývá u odborné literatury ani zdaleka pravidlem.

Koupě této knihy rozhodně není špatná volba, pokud umíte PHP, víte jak vypadá XML a chcete (nebo musíte) s těmito dvěma technologiemi pracovat naráz.

Jiří Kosek: PHP a XML, vydala Grada v roce 2009

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 3

Přehled komentářů

Martin Kupec Webové služby
Callo Re: Webové služby
vitex Hned jsem běžel do grady a knihu si koupil
Zdroj: https://www.zdrojak.cz/?p=3123