Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilDaniel Matoušek
1
Workshop PHP + MySQL 2. část Frameworky
2
Framework S rostoucím zájmem o webové stránky vzrůstal počet vývojářů, kteří se nasazením webových aplikací zabývali, a tím vznikaly opakující se postupy řešení pro stejné části jednotlivých úloh, díky tomuto efektu se začaly rozšiřovat frameworky. Hlavním účelem frameworků je poskytnutí podpory při vývoji aplikaci ve formě např. návrhových vzorů, osvědčených postupů, programů a knihoven.
3
Framework První webová stránka s dynamickým obsahem byla vytvořena před koncem 20. století. Zrod dynamických stránek se datuje k roku 1993, kdy byl poprvé představen protokol CGI (Common Gateway Interface). CGI je protokol, který umožňoval pouštět skripty na webovém serveru a zobrazoval požadovaný výstup klientovi.
4
Framework
5
Framework Se zvyšujícími se implementacemi se opakovaly různé postupy řešení a tímto vznikaly pracovní rámce (frameworky). Tyto frameworky zjednodušují práci vývojářům a tím došlo k zjednodušení tvorby webových stránek pro základní prvky.
6
Framework Vznik prvního frameworku se datuje k roku 1998, kdy bylo uvolněno první objektově orientované programování na základech jazyku Python. Byly publikovány tři open source balíčky: Bopo, Dokument Templete a BoboPOS, které byly nazvány Principia, v listopadu 1998 byl přejmenován na Zope.
7
Framework V roce 2001 byl publikován další framework pro vývoj stránek na webu. Tímto frameworkem byl Struts 1.0, vyroben firmou Apache. Jedná se o framework založený na MVC modelu (Model – View – Controller), základ pro většinu moderních frameworků. Tento framework umožnil spojení prvků HTML a JAVY.
8
Framework Dalším významný milník webových frameworků byl v roce 2005, kdy byl vytvořen velmi zajímavý framework Ruby On Rails, jak již název napovídá je založen na programovacím jazyku Ruby. Tento framework byl nejvíce využíván v zemi jeho původu a to v Japonsku, ale s anglickou dokumentací se rozšířil i do ostatních zemí.
9
Framework První významný framework pro programovací jazyk PHP byl CakePHP 1.0, který se nechal inspirovat úspěchem Ruby on Rails.
10
Obecná definice framework Framework je softwarová struktura, která slouží jako podpora při programování a vývoji a organizaci jiných softwarových projektů. Může obsahovat podpůrné programy, knihovny API (Application Programming Interface), podporu pro návrhové vzory nebo doporučené postupy při vývoji.
11
Časové milníky frameworků
12
PHP a framework Tento jazyk je oblíben u vývojářů webu hlavně z důvodu rychlého osvojení syntaxe, a také proto, že jej lze začít hned a zdarma používat. Obliba PHP ještě více stoupla s příchodem verze 5, z důvodu, že poskytuje služby objektového programování. Zásluhou této verze může být zařazeno do vývoje webů nekomplikované, ale zároveň velmi robustní objektové programování.
13
PHP a framework Na základě objektového programování začaly vznikat první frameworky k tomuto jazyku. V dnešní době můžeme nalézt velké množství open source PHP frameworků. PHP frameworky lze využít mnoha způsoby, jako jsou například komponenty pro opakující se úlohy, databázové dotazy, zpracování šablon, tvorba formulářů, ověřování údajů nebo posílání e-mailů. Komponenty nemusí být pro každý projekt znovu opisovány, ale mohou být použity i opakovaně.
14
Google statistiky – PHP frameworky Z grafu je patrné, že v současné době postupně dochází ke stejnému využití všech PHP frameworků, zejména CodeIgniter a Yii vykazují vzestupnou tendenci popularity. Lze se domnívat, že předchozí nadvláda frameworku Zend byla velmi lehce odůvodnitelná, jelikož společnost Zend Technologies je autorem PHP jazyka.
15
Zend Framework Zend Framework je řazen mezi open source frameworky. Vytvořený a dále podporovaný firmou Zend. Tento framework nabízí i prostředky pro podporu AJAXu. Pracuje jako většina moderních frameworků v návrhovém vzoru MVC. Zend je se svými deseti miliony stažení z oficiálních serverů nejrozšířenější PHP framework. V březnu 2006 byla zveřejněna první verze s označením Pre Alfa Version 0.1.1. Tato verze nebyla doporučena pro praxi, ale nabízela některé komponenty, které dodnes tvoří jádro Zend Frameworku. První produktivní verze vznikla v červenci 2007.
16
CAKEPHP Michal Tatarynowicz vytvořil minimální verzi Rapid Application Framework v PHP, který považoval za velmi dobrý start pro kvalitní framework, proto jej dal k dispozici vývojářům, kteří dopracovali CakePHP do dnešní podoby. CakePHP je rychle se rozvíjející open source framework pro PHP, který poskytuje rozšiřitelnou architekturu pro vývoj, údržbu a zavádění aplikací. CakePHP je distribuován pod licencí MIT (Massachusetts Institute of Technology). Tento framework byl jedním z prvních frameworků pro PHP. Je postaven na základě úspěchů Ruby on Rails, není však jen jeho odnoží, přesto využívá několik jeho konceptů. CakePHP je kompatibilní s verzemi PHP 4 i 5. Tento framework také podporuje vzor MVC.
17
Codeigniter Codeigniter je open source framework, který vznikl v roce 2006. Opět založený na návrhovém vzoru MVC. Stejně jako CakePHP je kompatibilní s verzemi PHP 4 i 5. Najdeme zde několik užitečných pluginů pro práci s excelem, generátory PDF či geografické lokátory, které podle IP najdou pozici. Codeigniter je přiřazován k nejjednodušším PHP frameworkům na osvojení.
18
Symfony Ze vzoru MVC vychází znovu open source framework Symfony. Jeho vývoj je podporován společností Sensio Labs, která provedla implementaci v PHP 5 a je distribuovaný pod licencí MIT. Tento Framework je inspirovaný jinými frameworky jako například Django, Ruby on Rails a tak dále. Vznik frameworku je datován k roku 2005.
19
Yii Yii je zkratkou hesla: „Yes it is!“. Jako ostatní open source frameworky byl i tento při tvorbě inspirován návrhovým vzorem MVC. Yii framework je mladý framework, který je však velmi výkonný. Jeho extrémně působivá výkonnost, v porovnání s jinými PHP frameworky, okamžitě zapůsobila na velké množství uživatelů. Tvůrce tohoto frameworku Qiang Xue, dříve pracoval na jiném PHP frameworku Prado. Zkušenosti s tímto frameworkem mu pomohly velmi rychle a profesionálně při vývoji aplikací na Web 2.0 (Google+, Twitter). Tento framework vznikl v prosinci 2008.
20
Nette Jedná se o open source MVC PHP frameworky a o český produkt. Není vůbec rozšířen v ostatních zemích, mimo České republiky, zaostává totiž v dokumentaci a způsobech řešení. V České republice se tento framework těší snad největší oblibě v komunitě mezi PHP vývojáři. Původním autorem je David Grudl a o jeho další vývoj se stará Nette Foundation. Dne 27. ledna 2012 byla vydána očekávaná verze 2.0. První verze Nette Frameworku byla vytvořena v roce 2008.
21
MVC architektura Model View Controller architektura je využívána několika moderními frameworky, které jsou určeny pro vývoj webových aplikací. Jedná se o rozdělení do tří základních komponent: údaje (Model), prezentace (pohled, anglicky View) a řízení (řadič, anglicky Controller). Každá z těchto komponent se stará o určitou část aplikace.
22
Průběh požadavku v MVC architektuře 1.Úvod každého požadavku je v odeslání HTTP požadavku na server. 2.Poté je tento požadavek řadičem přijat a dále zpracován. 3.Z toho požadavku řadič zjistí, který model musí být osloven, je-li to potřeba a chce od něj získat data. 4.Pak řadič zjistí pohled potřebný pro výpis dat a předá mu data, která jsou pak vypsána. 5.Na konec utvoří pohled výpis dat (HTML stránka) a řadič ho pošle zpět do prohlížeče uživatele ve formě HTTP odpovědi.
23
MVC funkce modelu Funkce modelu v MVC, model poskytuje funkce na čtení a zapisování dat a je zodpovědný za datovou vrstvu. Je důležité pochopit, že Model se nerovná Databáze. Ve většině architektur ukládá model data do relačních databází (MySQL, PostgreSQL). Model však může používat i jiná úložiště dat (textový soubor, RSS, Webová služba). Řadič ani pohled nemají přehled o tom, jak a v jaké formě ukládá model údaje. Ani ho nepotřebují, protože se model sám stará o ukládání. Řadič však musí poznat formát dat získaných od modelu, musí taktéž poznat jednotlivé metody modelu i jeho parametry, které předává metodám.
24
MVC funkce pohledu Funkce pohledu je zodpovědná za prezentační vrstvu v MVC architektuře. Od řadiče dostává data, která jsou určená na vypsání. Odkud však tyto data pocházejí, je pohledu jedno, ale musí poznat jejich typ a formát. V pohledu je možné mít také vlastní prezentační logiku pro výpis seznamů v tabulce nebo pro změnu barvy v řádcích tabulky. Pohled by měl být odloučen od ostatní business logiky, která aktualizuje či promazává data, odesílá poštu nebo se stará o autorizaci uživatele. Výpis pohledu se realizuje ve formě HTML stránky, která je odeslána do prohlížeče. Výpis však může být i v XML nebo CSV, které jsou pak nabídnuty ke stažení.
25
MVC funkce řadiče Funkce řadiče je zodpovědný za řídící vrstvu. Požadavek na řadič je vykonán odesláním HTTP požadavku z prohlížeče. Z toho řadič zjišťuje, který model má být osloven a který pohled má vykonat výpis dat. Odpověď je poté odeslána do prohlížeče pomocí HTTP odpovědi. Řadič se skládá z dílčích komponent, které pak implementují různé návrhové vzory. Nejznámější jsou front controller, action controller a návrhový vzor. Klíčová komponenta je Front Controller, který přijme požadavek, zpracuje ho a osloví další komponenty.
26
Komparace PHP frameworků PHP framework PHP 4PHP 5MVCModulyORMEDP ZendNEANO NE SymfonyNEANO NE CakePHPANO NE CodeIgniterANO NE YiiNEANO NetteNEANO NEANO PHP 4: Poskytuje podporu verze 4 jazyka PHP. PHP 5: Poskytuje podporu verze 5 jazyka PHP. MVC: Podpora architektury MVC. Moduly: Podpora dalších modulů jako jsou PDF, RSS apod. ORM: Objektový přístup pro vybírání dat z databáze. EDP: Ovlivnitelnost běhu aplikace pomocí myše a klávesnice.
27
Komparace PHP frameworků PHP framework AutentizaceCacheValidator ZendANO SymfonyANO CakePHPANO CodeIgniterNEANO YiiANO NetteANO Autentizace: Podpora autentizačních (přihlašovacích) modulů. Cache: Podpora cachovacích nástrojů. Validator: Podpora validování údajů.
28
Praktická část Seznámení se serverem edu.uhk.cz Tvorba tabulek v MySQL Tvorba samostatného skriptu pro připojení k databázi Tvorba skriptu pro vkládání dat Tvorba skriptu pro výpis dat Tvorba skriptu pro editaci dat Tvorba skriptu pro výmaz dat
29
Zadaní samostatné práce Maximální bodový zisk za tuto část je 5 bodů z celkového možného zisku 10 bodů za workshop PHP + MySQL. Otevřete si zadani_prakticka_cast.pdf a vypracujte úkol samostatně. Po vypracování bude provedeno hodnocení.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.