PHP knížky

Po článku doporučující HTML knížky a CSS knížky bych rád sepsal literaturu o programovacím jazyku PHP. Bude se jednat opět o publikace spíše pro začátečníky, které by měli podat základní informace a možnosti. Většina zmíněných publikací pokrývá i základy databází, především MySQL, což je fajn, pokud chceme v PHP rovnou ukládat nějaká data a manipulovat s nimi. Všechny publikace jsou v češtině.

PHP pro úplné začátečníky - Jakub Mach

ISBN 80-7226-834-1, 2005, cena na Aukru kolem 90,- Kč

Ačkoli je knížka skoro 10 let stará, můžeme se zde dočíst, co to vlastně PHP je, jak se instaluje, jaká je základní syntaxe a jaké jsou běžně používané funkce (pro práci s řetězci, časem, poli, formuláři nebo soubory). Také je zde extra kapitola pro práci s databází, nebo grafikou pomocí knihovny GD.

Jedná se o opravdu čisté základy a je to ukázáno na kódu kde se míchá PHP s HTML dohromady a vše je psáno čistě procedurálně. Ačkoli má knížka pouze 168 stran, doporučil bych přeskočit rovnou na další knížku v tomto článku, kde se dozvíme to samé a ještě něco navíc.

Zajímavé postřehy z knížky: v PHP lze zapnout podporu ASP tagů <% %> pomocí konfigurační direktivy asp_tags=On. Příkaz echo na rozdíl od print nemá návratovou hodnotu, takže je rychlejší. Lze použít protokol mailto se zápisem <form action="mailto:email@domena.cz">.

PHP5 a MySQL5 Hotová řešení - Luboslav Lacko

ISBN 978-80-251-1695-1, 2007, cena na Aukro kolem 200,- Kč

Další z knížek je již mladší a zabývá se konkrétně verzí PHP 5.2 a MySQL 5.x. Opět se zde dozvíme o instalaci PHP (včetně nastavení virtuálních serverů v rámci Apache) a základní syntax. Oproti předchozí knížce je zde navíc kapitola o objektovém programování, práci se souborovou databází SQLite a dále s Oracle Database 10g. Také se zde dozvíme o práci s XML formátem a regulárními výrazy. Poslední kapitola se zabývá ukázkou kompletního řešení webového portálu s přihlašováním, implementace je však neobjektová.

Knížka se mi líbila daleko více jak předchozí. Ve většině věcí šla více do hloubky a byly uvedeny i některé věci 'pod pokličkou PHP', např. časová a paměťová náročnost některých funkcí, jaké jsou výhody a nevýhody konkrétních postupů. Navíc nemá knížka ani o tolik více stran, takže bych jí doporučil začátečníkům místo knížky předchozí.

Zajímavé postřehy z knížky: pojmenování funkcí je case-sensitive; PHP může být buď jako interpret CGI skriptů, nebo jako samostatný modul do webového serveru; nastavený virtuální server nám důsledně oddělí souborový systém; apostrofy jsou rychlejší než uvozovky, ale nevyhodnocují se; název funkce musí začínat písmenem; knihovna GD neumí formát Gif kvůli licenci; GD je jako modul php_gd.dll; SQLite je jako modul php_sqlite.dll a ukládá do binárního formátu; Oracle databázová vrstva je jako modul php_oci8.dll.

PHP 1001 tipů a triků - Jakub Vrána

ISBN 978-80-251-2940-1, 2011, nová knížka kolem 330,- Kč

Tuto knížku bych doporučil ihned po přečtení předchozí. Je to spíše taková doplňková literatura, protože se zde dozvíme různé triky, které nám mohou zjednodušit práci, zvýšit bezpečnost, zlepšit přehlednost kódu, nebo udělat naší aplikaci robustnější a rychlejší. Velice často se zde dá dozvědět o konkrétních implementačních detailech jazyka PHP, nebo databáze MySQL. Všechny tipy plynou z autorovy praxe a je velice pravděpodobné, že na ně při vytváření PHP aplikaci narazíme také dříve či později.

Potěšila mě hlavně sekce o objektovém programování, testování a návrhových vzorech, což je sice tematicky hodně blízké téma, ale už to přesahuje vlastní jazyk PHP.

Knížka má 456 stránek a výhodou je, že se nemusí číst sekvenčně, ale můžeme skákat po jednotlivých kapitolách, nebo konkrétních tricích. Každý trik je zařazen do jedné ze tří kategorií podle obtížnosti (začátečník, pokročilý a znalec).

Programujeme PHP profesionálně

ISBN 8072263102, v inzercích kolem 100,- (pro vydání 2002)

Tato knížka z roku 2002 s počtem stran 676 je už pro opravdové zájemce o jazyk PHP. Popisuje vše výrazně do hloubky a ostatní knížky vedle této vypadají jenom jako stručné výpisky. Bylo by ale vhodnější sáhnout spíše po novější verzi PHP 6 Programujeme profesionálně, kterou bohužel nemám k dispozici a v CPress e-shopu stojí 672,- Kč.

Knížka obsahuje instalaci PHP, kompilaci PHP, nastavení Apache serveru, instalace MySQL, knihovny GD a to jak na platformě Windows, tak Unix. Podrobně je popsána kompletní konfigurace PHP pomocí php.ini, včetně popisu každého jednotlivého parametru. Dále pokračuje klasicky s popisem syntaxe PHP a následují speciální kapitoly pro regulární výrazy, práci se soubory, objektové programování, databáze SQL včetně popisu syntaxe SQL, práce s adresáři LDAP včetně instalace serveru OpenLDAP a popisu organizace dat v rámci LDAP, práce s XML, využití knihovny GD pro práci s obrázky, příjem a odesílání e-mailů včetně použití vlastního SMTP serveru, podpora IMAP, cookies, ladění a zabezpečení. Na závěr jsou uvedené čtyři případové studie, jedna z toho například návrh elektronického obchodu. Většina kapitol je zakončena ukázkovou aplikací, kde jsou probrané funkce ukázány na reálném příkladu.

Líbí se mi, že u každé popisované technologie jde knížka do hloubky, například u popisu možnosti práce s LDAP v PHP je popsán i samotný LDAP protokol a struktura ukládaných dat.

Ačkoli je knížka hodně stará, pořád se tam popisují funkce v PHP obsažené a dále jsou zde ukázány přístupy, které jsou nadčasové, například různé návrhové vzory, protokoly a programovací techniky.

Zajímavé postřehy z knížky: příkaz httpd -l vypíše všechny přikompilované moduly apache serveru; httpd -S zkontroluje validitu souboru httpd.conf, modul mod_so.c umožňuje podporu dalších modulů do Apache (například modul PHP), pro podporu LDAP prokotolu musíme PHP kompilovat s příznakem --enable-ldap.

Programujeme Mashup aplikace pro Web 2.0 v PHP

IBAN 978-80-251-2057-6, 2008, cena na Aukru kolem 150,- Kč

Na závěr uvedu takovou doplňkovou knížku, která na reálných příkladech ukazuje použití několika webových služeb a formátů: XML-RPC, RSS, REST, SOAP, RDF, SPARQL, JSON a XMLHttpRequest. Je zde ukázána práce s Google Maps, Flickr, YouTube, Amazon, Microsoft Live Search, Yahoo, Last.fm a dalších. Z nich jsou tvořeny aplikace, které uvedené služby míchají dohromady, např. zobrazení obrázků z Flickr na Google Maps. Ukázána je konkrétní implementace v PHP s využitím jak interních funkcí PHP například fsockopen(), SoapClient(), DOMDocument(), xml_parser_create(), tak i externích knihoven instalovaných přes PEAR.

U většiny příkladů nejde knížka moc do hloubky, jedná se pouze o hrubý náznak implementace, což ve většině případů nevadí. Probrány jsou hlavně detaily nutné k úspěšné implementaci na ukázkových příkladech. Občas mi vadilo, že autor míchal jablka a hrušky - například srovnával JSON a SOAP, přičemž jedno je formát dat a druhé typ služby. Knížku nemá smysl nějak detailně studovat, stačí si prolítnout zhruba uvedené příklady a realizovat až ty pro nás zajímavé, nebo se inspirovat k vlastnímu mashupu. Co se mi líbilo, že vše bylo implementováno objektově a znovupoužitelně.

Závěr

Většinu ze zmíněných knížek a nějaké navíc prodávám na Individi - http://individi.cz/97

Kdo má raději on-line kurzy, mrkněte na některé z těchto:

http://www.w3schools.com/php/default.asp - on-line kurz včetně spustitelných ukázek kódu a kvízů, anglicky, zdarma

http://www.codecademy.com/tracks/php - základy PHP 5, výuka přímo psaním kódu, anglicky, zdarma

https://www.udemy.com/courses/search/?q=php - placené kurzy PHP, anglicky

U on-line kurzů je potřeba myslet na to, že učí pouze samotné programování, není zde uvedena "omáčka" kolem toho, například instalace prostředí, konfigurace PHP atd.