Jak začít vývoj dynamických webů? - Zkuste to v PHP

1. 2. 2003

Sdílet

Důvody, proč vytvářet dynamické webové aplikace, mohou být různé. Někdo si chcejen udělat vlastní adresář kontaktů, jiný se chystá na profesionální aplikaci typu elektronický obc...
Důvody, proč vytvářet dynamické webové aplikace, mohou být různé. Někdo si chce
jen udělat vlastní adresář kontaktů, jiný se chystá na profesionální aplikaci
typu elektronický obchod. V každém případě budete využívat dynamicky generované
stránky pro práci s databází, přihlašování uživatelů, atd. Možná si také
myslíte, že se jedná o věci složité a drahé, které jsou mimo vaše možnosti. Tak
to určitě není. Přesvědčte se sami.

Technologií pro vytváření dynamických webových stránek existuje několik. Jsou
to například tyto: JSP, CouldFusion, ASP a také PHP. Z obecného porovnání
jednotlivých technologií by zřejmě nevyšel jediný univerzální vítěz, protože
vhodnost jednotlivých nástrojů velmi záleží na typu zadané úlohy, kterou chceme
řešit, na finančních možnostech, existující infrastruktuře a dalších faktorech.
Právě PHP má však řadu zajímavých vlastností, díky nimž je tento skriptovací
jazyk výbornou volbou pro začínající programátory dynamických stránek. Je
přehledný, lehký k naučení a jednoduše se integruje do existujících HTML
stránek. Zároveň je však dostatečně výkonný. Další nepopiratelnou výhodnou je,
že je zdarma a k tomu multiplatformní, a tak se každý můžete sám rozhodnout,
jak chcete pracovat, např. vyvíjet pod MS Windows, ale výslednou aplikaci
provozovat na serveru běžícím na systému Linux. Ti, co dostatečně nevládnou
anglickým jazykem, se však nemusí bát nedostatku literatury. Na trhu je k
dostání již řada knih v češtině, které se zabývají tímto tématem, a to včetně
příruček pro začátečníky. A to jsem se ještě nezmínil o českých stránkách
věnovaných právě vývoji v PHP. Dalším důležitým faktem, který je třeba vzít v
úvahu při výběru technologie, je dostupnost webhostingu s danou platformou. A
zde platí, že PHP spolu s ASP patří mezi nejčastěji nabízené technologie na
českých serverech.


Co PHP umí?

A co vlastně PHP umí? Nejdříve připomenu, že cílem tohoto článku není popis
jazyka, a tak teď pro váženého čtenáře jen výčtem uvedu seznam některých jeho
vlastností. Mimo jiné se zaměřím na ty vlastnosti, které většině tvůrců webu
jistě dokáží ušetřit hodně práce.

Vlastní jazyk se podobá ostatním skriptovacím jazykům, takže k dispozici jsou
podmínky, cykly, funkce, různé typy proměnných, atd. Vedle základních
konstrukcí jazyka PHP obsahuje funkce pro práci s e-mailem, podporu formulářů,
funkce pro práci s textovými soubory, nahrávání souborů na server. Ve výčtu
také nesmí chybět práce s cookies, podpora adresářových služeb, XML, vytváření
dynamických obrázků a především podpora pro databáze. To je velmi potřebná
vlastnost, protože základem téměř každé složitější aplikace je nějaká databáze.
V PHP najdete nativní podporu pro MySQL, Postgres a ODBC databáze. Aplikace
napsané s využitím PHP lze většinou poznat podle koncovky dokumentu, která má
tvar .php (také .php3, .php4) nebo .phtml. Neplatí to však stoprocentně,
protože její tvar závisí na konkrétní konfiguraci serveru, a tak může být i
zcela jiná. To je však spíše výjimečné. Vedle základní instalace PHP existuje i
řada doplňků. Příkladem povedené a populární knihovny je JPGraph
(www.aditus.nu/jpgraph), což je grafická, objektově orientovaná knihovna.


Co pro vývoj potřebujeme?

Co všechno je vlastně třeba pro vývoj aplikací? Nejdříve je třeba rozhodnout,
pod jakým operačním systémem bude vývoj probíhat. Většina uživatelů se bude
zřejmě rozhodovat mezi MS Windows a Linuxem. K dispozici je instalace pro obě
verze. V současné době je poslední odzkoušenou verzí PHP 4.XX a stáhnout si ji
můžete např. z adresy http://www.php.net. Pro řádný vývoj s PHP potřebujete mít
nainstalován WWW server. V případě Linuxu je standardem server Apache. Ten je
součástí většiny distribucí Linuxu, a tak jeho získání nepředstavuje žádný
problém. Apache lze však provozovat i pod MS Windows potřebné instalační
soubory najdete na adrese http://www.apache.org. Pro ty, co dávají přednost
výrobkům z Redmondu, je k dispozici Internet Information Server (IIS) nebo
Personal Web Server, který je součástí standardní instalace MS Windows. Dalším
důležitým krokem je určení databáze, jejíž služby bude aplikace využívat. Pokud
rozhodování probíhá jen mezi těmi produkty, které jsou pro účely webhostingu
zdarma, jsou k dispozici databáze MySQL a PostgreSQL. Obě jsou velmi výkonné a
jsou k dispozici jak pro Linux, tak i pro MS Windows. Potřebné instalační
soubory jsou k nalezení na adrese http://www.mysql.com, případně
http://www.postgresql.com. Jejich databázové ovladače však není třeba
instalovat, protože jsou součástí PHP. Tématu, jak správně vybrat databázi, je
věnován samostatný rámeček. Pokud jste tedy nainstalovali WWW server, PHP a
databázi, zbývá již jen vybrat vhodný nástroj pro zápis vlastního kódu. Pokud
se rozhodnete zkusit práci s PHP pod MS Windows a nemáte příliš velkou chuť do
instalování jednotlivých balíků a jejich správné konfigurace, hodně práce vám
ušetří balík PHP Triad, který zdarma získáte z adresy
sourceforge.net/projects/phptriad. Ten v sobě obsahuje PHP, Apache a MySQL
předkonfigurované tak, že po jednoduché instalaci se již nemusí nic dále
nastavovat a lze zahájit vlastní práci. Součástí instalace je i příjemná
aplikace PHPMyAdmin, která využívá PHP, a tak běží v internetovém prohlížeči. S
její pomocí můžete vytvořit novou databázi MySQL, přidávat, měnit a mazat data.
Samozřejmě se dá využít pro provedení libovolných SQL příkazů. Češtinu do
programu si můžete stáhnout z adresy http://www.cestiny.cz/pp/phpmyadmincz
010213.html. Vlastní PHPTriad je, bohužel, již nepodporovaný projekt, takže
obsažené verze nejsou úplně nejnovější, ale žádné vyloženě zastaralé verze zde
také nenajdete. Na zmiňované stránce však nestahujte poslední verzi 2.2, která
není plně odzkoušená, a raději se podívejte po starší verzi 2.11. Tu najdete
tak, že si necháte zobrazit všechny soubory projektu.

Pokud máte zájme o podobný balík, který v sobě obsahuje nejnovější verze všech
programů, podívejte se na webovou adresu http://www.sokkit.net, kde jeden z
tvůrců PHPTriad nabízí jeho komerční pokračování pod názvem Sokkit, a to za
celých 19 USD.

A teď již naposled na téma instalace. Pokud se rozhodnete ve vaší aplikaci
využívat adresářových služeb pracujících s protokolem LDAP, např. pro vytvoření
databáze oprávněných uživatelů, budete potřebovat server, který tuto službu
poskytuje. Naštěstí existuje volný program OpenLDAP. Naleznete jej na adrese
http://www.openldap.org. Pro udržení pořádku mezi různými verzemi zdrojových
souborů je vhodné využít některý ze systémů pro správu verzí souborů. Vedle
komerčních, např. od Microsoftu, existuje velmi populární a spolehlivý
Concurent Versions System (CVS), jejž lze zdarma získat na adrese
http://www.cvshome.org.


V čem vyvíjet?

Na otázku, v čem vyvíjet, neexistuje jednoznačná odpověď. Protože soubor PHP je
stejně jako soubor s HTML normálním textovým souborem, postačí pro jeho zápis
jakýkoli textový editor, například Write z MS Windows. Toto řešení však zdaleka
není optimální. Opačným pólem je využití programu Macromedia Dreamweaver MX,
který má již zabudovanou podporu PHP. Tento zcela profesionální program je
určen pro komplexní vývoj WWW stránek a snaží se maximálně šetřit
programátorskou práci. Začátečníkovi, který se chce co nejvíce sžít s vlastním
jazykem, však budou spíše vyhovovat editory, které se nacházejí mezi oběma
jmenovanými programy. Příkladem skvělého nástroje je editor HomeSite, taktéž od
firmy Macromedia. Je to samozřejmě program komerční, takže za něj zaplatíte a
to 4 000 Kč. Získáte v něm ovšem editor, ve kterém lze pohodlně a hlavně
efektivně psát programy hned v několika internetových jazycích. Práci vám
především zpříjemní takové vlastnosti jako je automatické doplňování párových
značek, náhled parametrů zadávané funkce a další. Navíc můžete zdarma získat
další doplňky, které právě práci s PHP učiní příjemnější. Řadu PHP doplňků do
HomeSite najdete na http://www.wilk4. com/asp4hs/php4hs.htm. Je zde kontextová
nápověda, manuál pro PHP i MySQL, atd.

Pokud chcete vyvíjet především v PHP a nepotřebujete zefektivnit práci např. s
JavaScriptem, podívejte se na http://www.maguma.com. Co vás bude především
zajímat, je editor Maguma Studio Lite. Jak již název napovídá, jedná se o
odlehčenou verzi programu Maguma Studio Desktop, která je k dispozici zdarma a
to bez registrování. Program je výborný a má, mimo jiné, jednu zajímavou
vlastnost pro testování kódu není třeba, aby běžel WWW server, protože editor
si umí sám zajistit vyvolání interpretu PHP. Jinak jsou také k dispozici funkce
pro automatické doplňování a náhled funkcí, tentokrát však jen pro PHP.
Programátorských editorů, ve kterých lze psát programy v PHP, je však mnohem
více. Patří mezi ně známý Crimson Editor (www.crimsoneditor.com), který je
zdarma a vedle PHP umí i řadu dalších jazyků, či také velmi populární CoffeeCup
HTML Editor. Ten navíc existuje i ve verzi pro Linux, kde je k dispozici
zdarma. Více informací včetně souborů ke stažení najdete na stránce
http://www.coffeecup.com. Pro uživatele Linuxu je také určen skvělý
programátorský editor bluefish, který lze získat na adrese
bluefish.openoffice.nl. Mimo jiné obsahuje referenční příručku PHP, funkci
preview a správu projektu a odkazů.

A jak je to vlastně s tím "zdarma" u MySQL? V licenčních podmínkách jsou
vyjmenovány případy, kdy není za použití programu třeba platit. Je v nich
zahrnuto např. využívání služeb webhostingu, využívání databáze pro vlastní
účely či ve vlastní firmě, tj. ne jako součást aplikace prodávané jiné firmě. V
ostatních případech je třeba zakoupit licenci. Její cena se však nepohybuje ve
statisících, ale za verzi bez transakcí je 200 USD, s transakcemi 395 USD. Také
je možné zakoupit podporu od mateřské firmy. Její cena začíná na 1 500 USD za
rok.


Můžeme začít

Takže prostředí je nainstalováno, jen začít. Úvodní kurs PHP v češtině lze
najít např. na adrese http://www.interval.cz v sekci Vývoj aplikací/PHP. Tento
server je vůbec skvělým zdrojem informací, rad a tipů pro všechny vývojáře
internetových aplikací. Najdete zde celé miniseriály, které ukazují možnosti
řešení praktických problémů jako je tvorba adresáře kontaktů či elektronický
obchod. Výhodou je, že na stejném místě naleznete obdobné sekce věnované dalším
internetovým technologiím. Výsledkem je server, který poskytuje velmi komplexní
informace v oblasti tvorby webu.

Dalším, velice podobným českým serverem, jenž se věnuje programování v PHP, je
PC Svět (www.pcsvet.cz/php). I zde najdete řadu praktických tipů a triků. Pro
začátečníky je důležitý velmi dobře zpracovaný kurz PHP, který v okamžiku psaní
tohoto článku obsahoval již 11 dílů. Jako uživatelé MySQL uvítáte i články
věnované této databázi.

Mezi známé servery na českém internetu patří i http://www.zive.cz. V části
Programování najdete sekce věnované PHP i MySQL.

Dalším zajímavým serverem pro tvůrce webu je http://www.webtip.cz. Zde také
najdete část věnovanou PHP a v ní zajímavý seriál PHP v praxi (zatím 26 dílů),
který ukazuje všestranné využití možností PHP. Uživatelé produktů od firmy
Macromedia zde najdou řadu zajímavých informací a návodů věnovaných
internetovým nástrojům zmiňované firmy.

Řada užitečných informací se nachází na serveru http://www.reboot.cz.
Začátečníci zde najdou návody jak správně nainstalovat Apache či PHP, pro
ostatní je určeno velké množství návodů jak využívat PHP při řešení konkrétních
úloh, např. ve spojení s MySQL.

Jak je vidět, stránek věnovaných PHP je celá řada a není možné je na tomto
místě vyjmenovat všechny. Jako poslední z českých serverů ještě zmíním
http://www.webguru.cz a ze zahraničních uvedu jen tři. Jsou to však skvělé
zdroje návodů, rad a různých manuálů. Prvním z nich je PHPBuilder na adrese
http://www.phpbuilder.com. Což je server, kde vedle PHP najdete i řadu
informací o dalších, doplňujících technologiích. Druhým je server ONLamp, jenž
patří pod křídla i u nás dobře zavedeného vydavatelství O\REILLY. Články, které
jsou zde umístěné, pokrývají snad všechny možné aspekty práce s PHP. Na své si
přijdou i začátečníci pokud však nepřestavuje angličtina nepřekonatelnou
překážku. Poslední zajímavou adresou je px.sklad.com. Server PX se dá jednoduše
a také nejlépe popsat jako místo pro výměnu kódu mezi programátory.


Webhosting

Když je aplikace vytvořena, je ten správný čas na její testování. Nejlepší je
využít některou z firem nabízejících webhosting. Jak jsem se již zmínil, je PHP
nabízeno většinou českých firem v oboru, a tak není třeba je zde vyjmenovávat.
Zajímavější, především za účelem testování, je spíše možnost zdarma získat
prostor pro vlastní stránky včetně podpory PHP a MySQL. Takovýchto serverů je
ovšem znatelně méně. Patří mezi ně http://www.kbx.cz, který je pro studenty a
neziskové organizace zdarma, jeho komerční provoz je však nabízen za velmi
atraktivní ceny. Další server, který je již zdarma pro všechny, je na adrese
http://www.pes.cz/h_free.asp. Při registraci vlastní poddomény si můžete vybrat
z opravdu dlouhého seznamu domén 2. řádu. Tento server však podporu MySQL
teprve připravuje, dle oznámení na své stránce by však měla být k dispozici
velmi brzy. Pokud vám nevadí omezení velikosti databáze na 2 MB, tak se
podívejte na server http://www.webzdarma.cz, který jinak nabízí PHP a 50 MB
prostoru. Větší velikost databáze však nabízí např. http://www.iglu.cz, jenž je
pro prezentace nekomerčního charakteru zdarma. Dalším serverem, kde lze získat
volný prostor je http://www.kgb.cz, resp. http://www.fbi.cz. Pokud máte
zajímavý projekt, zkuste využít nabídky serveru http://www.sinister.cz, který
váš nápad posoudí, a pokud uspějete, získáte zdarma prostor na zajímavém severu.

Jak vidíte, můžete vlastně získat všechno zdarma: operační systém, jazyk,
databázi, vývojové prostředí, prostor pro testování či ostrý provoz. Pokud tedy
máte nápad a chuť něco vytvořit, nic vám nebrání začít a projekt dotáhnout až
do úspěšného konce. Vše je k dispozici.


Kterou databázi?

Databáze MySQL má za sebou už řadu let vývoje. Je to velmi výkonný nástroj,
který však postrádá některé vlastnosti, jež jsou občas databázovými
programátory vyžadovány. Naštěstí u většiny řešení platí, že nejsou zcela
nezbytná a dají se obejít jiným způsobem nebo prostě vynechat. Navíc se na
rozšíření MySQL usilovně pracuje a aktuální verze již obsahuje některé
vlastnosti, které byly dříve požadovány. Pro českého uživatele je významným
důvodem proč používat tuto databázi skutečnost, že ji nabízí většina českých
webhostingů. Možnou alternativou MySQL je PostgreSQL. Jedná se také o výkonnou
databázi, která však má, na rozdíl od MySQL, implementováno více SQL příkazů.
Mimo jiné nabízí plnou podporu transakcí, tj. seskupování SQL příkazů, jejich
společné provedení a případně návrat dat do původního stavu. Tato podpora
obsahuje i zamykání jen těch dat, která budou změněna. PostgreSQL tedy
využijete především tam, kde je využití pokročilých funkcí nutností, např. při
vývoji intranetového finančního produktu, a MySQL zcela postačí pro většinu
potřeb internetových aplikací.