PHP (87) - finišujeme portál

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 | přečteno 41287×

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

  1. Stránku nechám zobrazit v prohlížeči
  2. Nechám si zobrazit její zdrojový kód (např. ve Firefoxu pomocí pravého tlačítka myši)
  3. Stránku si uložím na disk
  4. 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:

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ě:

  1. 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.
  2. 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.
  3. 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.
  4. 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
  5. U testovacího provozu možná budete chtít zapnout protokolování chyb nebo nějaké jiné mechanizmy sledující chování portálu.
  6. 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:

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.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=626