Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilLibuše Bílková
1
„Programátor by měl být v prvé řadě líný.“
2
PIFovo Web API (API = Application Programming Interface)
3
Co to je PWAPI Je to sada tříd a knihoven napsaných v objektovém PHP5 (framework) určených pro efektivní a jednoduché programování a úpravu webových prezentací.
4
Základní požadavky Jednoduchá rozšiřitelnost Snadná správa vývojových prostředí Oddělení aplikační a prezentační sféry Zobecnění a zjednodušení opakujících se rutinních úloh při programování Nezávislost na databázové platformě Podpora multijazyčných prezentací Efektivní cache
5
Fyzická správa kódu PWAPI core workspaces (vývojová prostředí) mamut.cz php section user (frontend) section admin (backend) šablony skin user (frontend)skin admin (backend) config nastavení plugins obrázky, js, css, … … globální třídyglobální knihovny
6
Vývojová prostředí Ostrý server zákazníka Testovací server Vývojový server localhost PWAPI se automaticky stará o nahrání příslušné konfigurace závislé na daném vývojovém prostředí, kdy předpokládáme, že stejný web bude finálně běžet na minimálně třech různých strojích a na každé toto prostředí jsou kladeny různé nároky. Pod jedním PWAPI core kódem dokážeme spravovat nekonečný počet rozličných webů, takže je veškerý vývoj centralizován do jednoho adresáře.
7
Programátorský model
8
Knihovna MyLiteDB Přístup ke každé tabulce probíhá na základě vylepšeného vzoru Active Record Odpadá složitá tvorba základních SQL dotazů INSERT, UPDATE, DELETE Zavedení standartizovaných už. typů pro jakýkoliv databázový sloupec, řešící běžné konverze dat (např. konverze pro formáty cen, datumu, texy! konverze, apod. Podpora rozhraní Iterator v databázovém výsledku pro PHP funkce foreach(), aj. Podpora automatického stránkování výsledku Snadný debug výpis dotazů společně s časovou náročností Automatický výběr sloupců z databáze odpovídající danému jazyku Platformová nezávislost
9
Uživatelské typy - rozhraní MyType Standartizované rozhraní pro tvorbu vlastních už. typů Vlastní už. typ vzniká děděním rodičovské třídy MyType Už. typ definuje rozličné konverzní funkce pro zápis anebo pro čtení z databáze MyType __construct(string $value, string $key, [string $type = 'TODB']) string getName () string getValue () string getValueFromDB () string getValueToDB ()
10
Příklad - už. typ MyDateNow class MyDateNow extends MyType { //konverze pro uložení dat do databáze – INSERT, UPDATE //vrátí řetězec odpovídající SQL funkci pro vložení času public function getValueToDB() { return 'NOW()'; } //konverze pro čtení pole typu Datetime v databázi //vrátí uživatelsky příjemně formátované datum public function getValueFromDB() { return Date("j.n.Y H:i",strtotime($this->value)); }
11
Příklad přístupu do databáze s MyLiteDB a PWAPI Ukázková aplikace: Návštěvní kniha se stránkováním
12
Návštěvní kniha - šablona name: text: {$errors}{$notices} {$gb->paging->getXHTML()} {foreach key=cid item=con from=$gb} {$con->name} v {$con->date} {$con->text} {/foreach}
13
Návštěvní kniha – PHP kód class Forum extends ActiveRecord { } //vytvoření tabulky dle vzoru Active Record if( (!Empty($_POST) && (!Empty($_POST['name'])) && (!EMpty($_POST['text']))) { //Povinné údaje jsou vyplněny, uložíme do databáze $forum = new Forum('forum'); //vytvoření skladiště Active Record $forum->loadFromArray($_POST); //uložíme data z formuláře do objektu Forum $forum->setType('date','MyDateNow'); //konverze na aktuální datum $forum->setType('text','MyTexyString'); //konverze na texy formátovač if($forum->insert()) { //vykonání SQL dotazu INSERT do databáze Notice::getInstance()->setNotice('Váš příspěvek byl vložen.'); } else { Error::setError('Váš příspěvek NEbyl vložen.'); } elseif(!Empty($_POST)) { Error::setError('Musíte zadat své jméno a text zprávy.'); } $gb = MyLiteDb::getInstance()->pgexecute("SELECT * FROM forum ORDER BY date DESC"); $gb->setType('date','MyDateNow'); //konverze na formátování datumu $web->getTpl()->assign('gb',$gb); //výstup objektu do šablony
14
© 2005 – 2006 Vojtěch “PIF” Schlesinger Oficiální stránky http://pwapi.broskev.cz http://pwapi.broskev.cz Dokumentace: http://pwapi.broskev.cz/documentation/ http://pwapi.broskev.cz/documentation/
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.