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

2 „Programátor by měl být v prvé řadě líný.“

3 PIFovo Web API (API = Application Programming Interface)

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

5 Základní požadavky  Usnadnění práce, ne její přidělání  Kompaktní, avšak velice variabilní  Jednoduchý objektový přístup k datům  Snadná správa rozdílných konfigurací  Podpora multijazyčných prezentací  Struktura kódu je na programátorovi, ne na FW -> obstarává rámec

6 Charakteristika webu  Vzhled stránky je pro každou prezentační vrstvu stejný, mění se jen obsah  Obsah je uložen v databázi, ke kterému je přístup jak z uživatelské, tak z administrační vrstvy  Často se přistupuje k databázi  Web se mění podle toho, kde běží

7 Architektura  OOP PHP5  Page – Storage - Template  Stránka (PHP skript)  Uložiště (PHP třída)  Šablona (Smarty)

8

9

10

11

12

13

14

15

16 Fyzická struktura - PWAPI - konfigurace - logika - šablony - různé vzhledy (frontend X backend)

17 Programátorský model

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

19

20 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

21 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 ()

22 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)); }

23 Příklad přístupu do databáze s MyLiteDB a PWAPI Ukázková aplikace: Návštěvní kniha se stránkováním

24 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}

25 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

26 © 2005 – 2007 Vojtěch “PIF” Schlesinger Oficiální stránky  Dokumentace: 

27 Dotazy  PWAPI::askNow( )


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