Programujeme PHP profesionálně

Připravili jsme pro Vás recenzi knihy Programujeme PHP profesionálně, kterou v českém překladu vydává nakladatelství Computer Press. O tom co kniha obsahuje se dočtete v následujících řádcích.

Kniha pochází z nakladatelství Wrox Press a autory je kolektiv tvořený pěti programátory: Jesus Castagnetto, Harish Rawat, Sasha Schumann, Chris Scollo a Deepak Veliath, kterou u nás v českém překladu nabízí vydavatelství Computer Press za cenu 590 Kč. Na rozdíl od anglické verze knihy je k českému překladu přiloženo i CD, které si popíšeme později. Grafické ztvárnění a sazbu knihy hodnotit nebudu, protože se domnívám že to pro čtenáře není zase až tak podstatné. Dle seznamu a rejstříku se dá orientovat dobře, snad jen kapitoly mohly být trošku jinak seřazeny. Každý kdo měl s PHP co do činění se v knize určitě neztratí.

Hodně čtenářů, zabývajících se PHP, již určitě vidělo, nebo dokonce četlo knihu Jirky Koska – PHP tvorba interaktivních internetových aplikací, která se dá u nás považovat za určitý „standard“ knihy o PHP. Pokud se řadíte do této skupiny, budete si muset zvyknout na trošku jiný styl, protože kniha se s nikým „nemazlí“ a autoři jdou rovnou na věc. V knize se rozhodně nesetkáte s nostalgickým známým „programem“ obsahující příkaz vypisující text: „HELLO WORLD!“ – autoři knihy nechtějí čtenáře zatěžovat nepraktickými ukázkami zdrojového kódu.

První kapitola a úvod obsahují zběžný popis internetových aplikací, různých server-side skriptovacích jazyků a samozřejmě úvod do PHP. Druhá kapitola pak obsahuje vyčerpávající popis instalace Apache serveru s podporou PHP a to jak na platformách UNIX/Linux, tak i na platformách Windows. Velice podrobně je v této kapitole rozepsán konfigurační soubor php.ini, v podstatě každá direktiva je zde několika slovy popsána. Samozřejmostí je také popis instalace databázového serveru MySQL, který kniha hojně využívá (zmínky o jiných databázových systémech se v knize objevují, ale příklady v knize uváděné využívají výhradně MySQL databáze). A na závěr kapitoly se ještě dočtete něco málo o funkci a instalaci GD knihovny, určené pro práci s obrázky. Další kapitola je pak obecným úvodem do PHP, popisující základy programování v tomto skriptovacím jazyce.

Čtvrtá kapitola popisuje práci s proměnnými, konstantami a popisuje jednotlivé datové typy. V páté kapitole se pak dočtete o operátorech, a to jak matematických tak i logických, jejich uplatnění při různých matematických výpočtech a přiřazování. Jsou zde také popsány operátory, používané v podmínkách. Šestá kapitola pak popisuje velmi důležité příkazy, ke kterým mimo jiné patří if, else, while, for, include. V krátkých příkladech pak můžete vidět praktické využití těchto příkazů. Osmá kapitola obsahuje další důležitý element PHP, kterým jsou definice vlastních funkcí. Dočtete se o tom, jak se funkce definují, jaký jej jejich význam a jaké výhody přinášejí programátorovi. Samozřejmostí je několik praktických ukázek.
Osmá kapitola se zabývá definicí polí a funkcemi určenými pro práci s nimi. Popisovány jsou jedno i vícerozměrná pole, není zapomenuto ani na pole asociativní. Deváta kapitola obsahuje popis objektového programování v prostředí PHP, vytváření tříd, jejich instancí, dědičnost a samozřejmě jejich využití. V desáté kapitole se dočtete o práci s řetězci a práci reguláními výrazy. Jedenáctá kapitola čtenáře uvede do práce se soubory a souborovým systémem. Velice podrobně je zde popsáno čtení a zápis do souboru, jejich tvoření a mazání. Stejně tak zde čtenář nalezne popis funkcí pro práci s adresáři. Velká část kapitoly se pak také zabývá nerelační databází dba, jejím využitím, importem a exportem dat.

Dvanáctá kapitola se zabývá použitím relačních databází. Obsahuje popis systému, kterým aplikace s databází komunikuje, dále je zde stručně popsán jazyk SQL a jsou uvedeny i SQL příkazy používané v MySQL. V další části kapitoly se pak dozvíte jak tvořit v databáze, tabulky, vkládat, mazat a upravovat data v nich uložená. Jsou zde popsány všechny PHP funkce spolupracující s MySQL databází. V závěru kapitoly naleznete rozsáhlejší příklad využití PHP ve spojení s databází. Třináctá kapitola popisuje adresářovou službu LDAP a její spojení s PHP. Čtrnáctá kapitola se věnuje propojením PHP a XML. Najdete zde popis PHP funkcí určené ke generování a práci s XML kódem. Nechybí ani základní popis XML a struktura dokumentů v XML.

Patnáctá kapitola popisuje práci s obrázky, o jejich generování a úpravě. Šestnáctá kapitola se zabývá konektivitou PHP. Je zde vysvětlena komunikace PHP s jinými servery na bázi protokolu TCP. Jako příklad je zde uveden skript dotatazující se whois serveru na to, zda je zadaná doména volná či nikoli. Sedmnáctá kapitola popisuje tvorbu a odesílání mailů. A to jak pomocí funkce mail(), tak i pomocí tříd, určených k tvorbě mime mailů, které mohou například obsahovat přílohy. Je zde popsáno odesílání mailů přes SMTP server. Na konec kapitoly se stručně dozvíte i o přijímání a čtení mailů pomocí funkcí spolupracujících s protokolem IMAP. Osmnáctá kapitola obsahuje popis cookies, práci s nimi, výhody a nevýhody jejich použití.
Devatenáctá kapitola se věnuje lazení PHP skirptů. Obsahuje spoustu všemožných chybových hlášení, jejich význam a možnosti řešení chyb, které tyto hlášení způsobila. Dvacátá kapitola je plná bezpečnosti. Z velké části obsahuje konfiguraci serveru, php a dodatečných modulů, které slouží k zabezpečení dat a aplikací běžících na serveru. Velmi podrobně je zde probírán modul Open SSL, který ke kódovanému přenosu dat mezi webovým serverem a klientem. Dvacátá první kapitola s názvem „Magické uvozovky“ pojednává o problému s používáním uvozovek, zpětných lomítek a hodnoty NULL v PHP kódu kombinovaném s HTML a jeho řešením pomocí přidávání zpětných lomítek (back slashes). Poslední – dvaadvacátá kapitola se věnuje generováním HTML kódu s využitím třídy Fast Templates, jejím výhodám a nevýhodám.
Kniha dále obsahuje čtyři další kapitoly, nazvané jako Případová studie, které obsahují velmi podrobný popis internetové aplikace. Každá kapitola popisuje jednu konkrétní aplikaci. Popisovanými aplikacemi jsou: Internetový obchod – klasický virtuální nákupní dům s možností registrace uživatelů, nákupním košíkem, vyhledávání v nabízeném zboží s kompletní webovou administrací. Diskuzní fórum – popis diskusních fór (totožných třeba s diskusními fóry na tomto serveru). Poštovní klient – popis aplikace sloužící jako webové rozhraní pro emailové schránky podporující protokol IMAP. Poslední popisovanou aplikací je prohlížeč databáze, který slouží k administraci dat uložených v databázi a lazení skriptů s databází spolupracujících.
K českému překladu knihy je bezplatně přiloženo CD, obsahující materiály, které se budou čtenáři knihy hodit. Bohužel toto CD považuji za největší slabinu knížky. Z dostupných 650MB je obsazeno necelých 80MB, o to více mne pak překvapuje, že software dodaný na CD je jen ve verzích pro Windows (ne všechny instalace UNIX/Linuxu v sobě obsahují webový server, PHP a MySQL), určitě by se našlo místo na verze softwaru i pro jiné platformy. Na CD kromě všech ukázkových skriptů naleznete i instalaci Apache serveru, instalaci PHP a MySQL. Přiloženy jsou i různé ukázky konfiguračních souborů a to dokonce s českým překladem komentářů. CD také obsahuje PHP a MySQL dokumentaci. Jako „třešnička“ na dort je CD obohaceno o ceklem 8 příloh ve formátu PDF, Acrobat Readerem 4 a Win Commanderem 4.52. Přílohy v souborech PDF jsou však bohužel „zamčeny“ pro tisk, takže se normálním způsobem nedají vytisknout (alespoň na PC, na Macku se nám to v redakci podařilo napoprvé). Tyto přílohy obsahují (číslo v závorce je počet stran):
Příloha A: Funkce PHP (58),
Příloha B: PHP4 a ZEND (8),
Příloha C: Prohlížeče a HTML (55),
Příloha D: Požadavky a odpovědi HTTP (12),
Příloha E: Regulární výrazy (2),
Příloha F: Software Open Source (11),
Příloha G: Zdroje (4),
Příloha H: Podpora a chyby (4). 
Závěrem mohu říci, že čtenář za cenu 590 Kč dostane knihu s velmi kvalitním obsahem (i přes drobné jazykové chyby a chyby v sazbě). Cena knihy se může mnohým zdát jako přehnaná, ale vzhledem k celkovému počtu téměř 670 stran a ceně originálu, pohybující se kolem 50 dolarů je cena adekvátní. Koupi knihy úplným začátečníkům v PHP bez předchozí programátorské praxe bych nedoporučoval (Computer Press knihu zařadil do kategorie Profi, takže už to o něčem svědčí…), protože se zcela nezabývá základům a popisuje spíše pokročilejší programátorské metody. Pro ty, kteří se už základy PHP prokousali, mohu knihu vřele doporučit, protože obsahuje spoustu materiálu, který se může kdykoli hodit.