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í.