Dnes uzavřeme práci na hudebním portálu. Co se musí udělat, aby byl projekt schopný uveřejnění?
5.1.2005 15:00 | Petr Zajíc | read 41893×
DISCUSSION
Dnes se podíváme na některé věci, na něž byste při skutečné práci na
webech v PHP neměli zapomínat. Čímž dokončíme náš cvičný portál a i
tedy celou stať s většími příklady v PHP. Přestože to budou převážně
samozřejmosti, divili byste se, kolik lidí takové věci řeší na až
poslední chvílí, případně vůbec.
Standardy
Webové standardy jsou tu proto, aby se dodržovaly. K testování, zda
je stránka validní či nikoli, můžete použít celou řadu validátorů.
Velmi dobrý je ten na http://validator.w3.org/,
který mnoho lidí používá proto, že je k dispozici ON-LINE a proto, že
případné nedostatky dokumentu rovněž přehledně vysvětlí. Testovat
dynamický web však není tak jednoduché, jak by se na první pohled mohlo
zdát. Prozradím vám tip. Při testování platnosti nějaké dynamické
stránky (tak dejme tomu v našem případě stránky pro zobrazení
diskografie pro přihlášeného uživatele) si
- Stránku nechám zobrazit v prohlížeči
- Nechám si zobrazit její zdrojový kód (např. ve Firefoxu pomocí
pravého tlačítka myši)
- Stránku si uložím na disk
- Na stránkách validátoru je k dispozici rozhraní pro test
souborů pomocí jejich uploadu na server - to použiju
Kontrolou jsem objevil drobné prohřešky proti standardům i na tomto
testovacím portále - takže si nahrajte aktuální verzi, pokud budete
chtít s projektem dále experimentovat.
Databáze
Pokud Váš projekt používá nějakou databázi, měli byste si ji v této
fázi zazálohovat. Zazálohováním myslím jak strukturu, tak i data. Při
zálohování dat ale dejte pozor na zabezpečení. Pokud databáze obsahuje
citlivé údaje, dobře zálohu zabezpečte nebo tyto údaje nezálohujte. Tak
například na našem portále bychom za citlivé mohli považovat údaje z
tabulky uzivatele a proto jsem je nezálohoval. Záloha toho zbytku je k
dispozici k
nahlédnutí nebo ke stažení.
Zálohu můžete jednoduše vytvořit pomocí nějakého nástroje pro
administraci MySQL, třeba pomocí phpMyAdminu. Taková záloha je důležitá
nejen kvůli tomu, kdyby se databáze poškodila, ale rovněž kvůli
případným změnám. Nahlédnutím do generovaného souboru tak můžete lehce
zjistit, jakou strukturu měla databáze v době vytvoření. Kdyby bylo
potřeba později strukturu změnit, zálohujte rovněž.
Webdesign
Pokud bude portál funkční, můžeme jej dozdobit pomocí kaskádových
stylů, barev, obrázků, zvuků a všemožných jiných nemožností. My se tím
v našem seriálu zabývat nebudeme, patřilo by to spíše do seriálu o HTML
nebo o kaskádových stylech. Při tvorbě designu byste však přece jen
měli mít na paměti některé zásady, přímo či nepřímo související s
programováním:
- Holý web bez grafiky se může jevit jako až extrémně rychlý.
Pamatujte však na to, že zdání klame a že uživatel bude muset
postahovat i zvuky, obrázky a animace, pokud je na webu budete mít.
Mluvím o tom proto, že vina za "pomalý" web bývá někdy neprávem
svalována na PHP či na samotného programátora.
- Přidáním vizuálních prvků se může stránka stát zase nevalidní.
Pozor na to.
- Pokud jsou vizuální prvky "jen" grafickou nadstavbou, přidává je
většina programátorů a webdesignérů do projektu až v této fázi.
Jestliže ale je grafika součástí logiky webu, mělo by se s ní pracovat
již dříve.
Záloha
Pakliže jste dali na moji radu,
používáte asi nějaký systém pro správu kódu, jako je například CVS nebo
Subversion. Takže zálohování je jednoduchá věc: Potvrdíte změny,
nazvete si verzi nějakým honosným označením (třeba "release 1.0",
"musicweb 2005 cheetah" a podobně), případně si zazálohujete repository
a je hotovo. Pokud však systém pro správu kódu nepoužíváte, slušelo by
projektu alespoň zabalení do archivu, vypálení na CD a uložení na
nějaké bezpečné místo.
Pozn.: Slyšel už jsem
argument:"Proč bych to zálohoval, mám to přece doma v PC a navíc je to
na webu." Popovídejte si o tom s někým, kdo přišel o data v počítači a
jeho web byl hacknut. Bude mít pro vás zajímavé tipy ;-)))
Licencování
Pokud bude Váš konkrétní projekt provozován pod nějakou
definovatelnou licencí, měli byste se postarat, aby to bylo zřejmé.
Například zde
najdete překlad licence GNU a rovněž návod, jak tuto licenci použít ve
svých projektech.
Pozn.: Nikdo Vás samozřejmě nenutí
používat GNU licenci. Ale může to být dobrá volba, zejména chcete-li
svůj výtvor sdílet.
Bude-li projekt záležitost uzavřená, mohou se sestavit licenční
ujednání jiného typu. Je rovněž možné stanovit vlastní podmínky, za
nichž má (nebo nemá) být dílo šířeno. Pracujete-li pro zaměstnavatele,
bude mít asi vlastní představu, jak s Vaším dílem naložit ;-(
Testovací provoz
V reále by asi web v této fázi šel do testovacího provozu. K tomu
není mnoho co dodat. Snad jen pár postřehů k testovacím postupům obecně:
- Někdy se hodí být u toho, když uživatel zkouší portál ovládat.
Případné připomínky pak můžete rovnou konzultovat.
- Tester nebo uživatel by měl mít k dispozici nějaký jednoduchý
způsob, jakým Vám dá k dispozici své postřehy.
- Pakliže budete předávat svou práci někomu, kdo si rád na poslední
chvíli vymýšlí, vezměte si s sebou podklady k zadání. Zákazníky někdy
napadají neuvěřitelné věci, které by mohly znamenat celý portál
předělat - pokud ale máte dobře zadání, není většinou co řešit.
- Testovací prostředí by se mělo co nejméně lišil od prostředí
ostrého. U webů se někdy testovací verze portálů umisťují na provozní
servery, ale do jiných umístění. Takže máte například ostrý provoz na
www.nazevportalu.cz a testovaní na www.nazevportalu.cz/test
- U testovacího provozu možná budete chtít zapnout protokolování
chyb nebo nějaké jiné mechanizmy sledující chování portálu.
- Rovněž užitečný může být protokol o činnosti serveru; poradí Vám
například, které stránky bývají navštěvovány častěji než jiné. K témuž
slouží počitadla návštěv.
Závěrečné poznámky
Tento jak jsme jej honosně nazvali "hudební portál" není samozřejmě
skutečný a hotový webový portál. Cílem bylo pouze ukázat vám co možná
nejvíce programovacích technik jazyka PHP, a udělat to jinak než s
použitím klasického příkladu - internetového obchodu. Na portálu chybí
některé věci, jako třeba:
- Některé údaje jdou jen vkládat
- Některé údaje jdou jen vkládat a editovat, ne odstraňovat
- Stránky nejsou provázány tak kvalitně, jak by mohly být.
Přesto věřím, že alespoň kousek inspirace z něj budete mít. Při
vývoji vlastních prací můžete totiž narazit na spoustu úloh, kterých
jsme se tak či tak dotkli. A můžete se rozhodnout, že buď použijete
nazančená řešení, nebo sestavíte vlastní, třeba i lepší. V dalším díle
seriálu tedy tvorbu portálu opustíme, a budeme se věnovat obecnějším
tématům. Těšte se - tématem následujícího dílu bude Proč (ne)používat PHP na Windows.
Na současný stav projektu se můžete na našem webu podívat
nebo si jej můžete stáhnout.
Pozn.: Aby Vám stažená verze
fungovala na lokálním stroji, upravte si hodnotu konstant SQL_HOST,
SQL_USERNAME, SQL_PASSWORD a SQL_DBNAME. Případně si je můžete včlenit
do konfiguračního souboru podobně, jako jsem to udělal v souboru
func.php.