Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)

Podobné prezentace


Prezentace na téma: "„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)"— Transkript prezentace:

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  Dokumentace: 


Stáhnout ppt "„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)"

Podobné prezentace


Reklamy Google