PHP frameworky
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP frameworkyPHP frameworky

 

PHP frameworky

Google       Google       21. 2. 2008       38 078×

S pojmem framework se v poslední době setkáváme čím dál častěji. K čemu nám je framework dobrý? Proč bychom se měli nějaký naučit? Budeme z toho něco mít? Tak na tyto otázky se vám budu snažit v tomto článku odpovědět.

PHP je velmi jednoduchý jazyk, a tak není divu, že je velmi hojně rozšířen, ještě k tomu, když je poskytován zadarmo. Během let si již komunita osvojila určité techniky tvorby webu pomocí PHP. Ať už jde o includování samotných stránek nebo konfigurace našeho webového projektu.

V poslední době se rozmohl nový trend – frameworky. A právě frameworky se snaží jít novou cestou, poskytnou programátorovi pomoc, nový efektnější způsob řešení a také ušetřit mnoho kódu, který by musel stále znova a znova dokolečka psát. Velmi známým frameworkem je Ruby on Rails, což je framework pro programovací jazyk Ruby. Ale my jsme u PHP, tak tedy honem zpět.

Jak již bylo řečeno, Ruby on Rails je velmi populární, a proto od něj také všemožné frameworky čerpají inspiraci. Než se ale pustíme do popisu frameworku, ujasněme si, co tento pojem znamená. On není framework jako framework. Nejdříve obecně – co nám píše Wikipedia.org:

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, knihovnu API, návrhové vzory nebo doporučené postupy při vývoji.

Pokud se budeme bavit o PHP frameworcích, tak to znamená, že se bavíme o sadě scriptů v PHP, které pracují a fungují úplně stejně jako ty naše. Nejedná se o žádné kompilované knihovny, které bychom museli do PHP přidávat. Ne, naopak, frameworky mnohdy mohou nahradit nějakou extension z PHP. Můžeme tak vyzrát na nekvalitní hostingy, které nám nenabízejí to, co potřebujeme.

Není framework jako framework

Trošku oříškem je vyznat se ve všemožné spleti PHP frameworků. Nejdříve si dejte pozor, pro jakou verzi PHP je framework určen. Na jednu stranu může být výhoda, že framework podporuje PHP 4, na druhou stranu už asi víte, jaké oblíbené součásti z PHP 5 v něm nenajdete. V dnešní době ale už je VELMI nevhodné vyvíjet pod PHP 4 a většina frameworků už „přechází“, nebo je jen PHP 5 kompatibilní!

Další velmi důležitým faktorem při výběru je to, k čemu framework potřebuji a k čemu je určen. Obecně lze frameworky rozdělit na dvě skupiny:

  1. Sady scriptů – knihoven – pokrývající všemožné potřeby
  2. Scripty vytvářející jednu konkrétní webovou aplikaci

Představitelem první skupiny je například Zend Framewok (patří také do 2. skupiny), PRADO framework. Do druhé skupiny lze zařadit CakePHP, CodeIgniter. Zřejmě by stálo za to blíže vysvětlit princip fungování 2. skupiny. Tato skupina většinou aplikuje určitý návrhový vzor, nejčastěji MVC. Všechny požadavky míří na jeden index.php, jenž následně řídí celou aplikaci, načítá potřebné soubory apod.

MVC – a co to jako má být?

MVC aneb model-view-controller je návrhový vzor, tedy objektová struktura, jež odděluje data a jejich zpracování od jejich zobrazení. Model představuje datové úložiště, obstarává získání dat a práci s nimi a vrací je controlleru, který si o ně zažádal, controller je následně předá view, který je jakýmsi způsobem zobrazí.

Tento přístup jde mnohem dále za šablony, na druhou stranu je velmi těžké striktní MVC naplnit. Jen tutoriály na frameworky jsou plny porušení základních principů MVC architektury. Pokud se chcete o modelu dozvědět více, doporučuji článek Jana Tichého na jeho blogu. MVC architekturou získáte přehledný kód, lehce upravitelný a navíc okamžitě přístupnější pro týmovou spolupráci. Podobným, ale téměř nepoužívaným vzorem je MPS – model-presenter-command. Tento návrhový vzor aplikuje velmi očekávaný český framework Nette.

Fairplay: Co mi to přines?

Ze začátku minimálně trochu práce. Naučit se pracovat s frameworkem není příliš jednoduché. Je nutné pochopit princip fungování, pak si zapamatovat názvy metod a tříd. V tomto směru je ale práce myslím lehčí, než se samostatným PHP, které má ve funkcích opravdu zmatek – to se frameworku nestává. Bohužel, plno dobrých zdrojů je v angličtině a to může často mnoho lidí odradit nebo jim ztížit práci. Velmi dobrým zdrojem jsou také weblogy. Ty na vás nehrnou tolik informací naráz jako manuál a navíc vám často poradí i nějakou tu vychytávku.

Teď ale přichází výhody, které vám framework přinese, když se ho naučíte.

  • Rychlejší vývoj
  • Méně kódu
  • Univerzální kód – změny či nové funkce přidáte 3× jednodušeji
  • Pěkná URL

Nepochybně se vaše rychlost vývoje zrychlí. Framework vám usnadní práci. Už nebudete programovat rutiny jako je připojení k databázi, zacheckování správného option u selectu, nebo zvalidování formuláře. Cool-Url budou pro vás automatická věc. Už žádné vrásky s XSS. Oddělená aplikační a prezentační logika, super! Změna DB serveru z MySQL na PostgreSQL? Ne, to vás nemůže rozhodit.

Díky frameworku se můžete opravdu soustředit jen na ten opravdový vývoj. Neřešíte blbůstky. To vše je ale vykoupeno časem, kdy se učíte s frameworkem pracovat. Znáte to, něco konečně uděláte, ale za týden, až proniknete ještě hlouběji do dané problematiky, zjistíte, že to šlo třikrát jednodušeji. Nelze říct, že učením frameworku strávíte měsíc. Ne, někdy, u těch složitějších a komplexnějších, to může být i rok. Nakonec si začnete framework rozšiřovat o své knihovny. A za rok se ohlédnete a zjistíte, že to, co byste předtím programovali týden, máte už teď za jeden den. Framework je úspora času a čas, to jsou peníze.

Tak který?

Výběr není jednoduchý. Jsem s to, že je třeba mít aspoň dva ve své nabídce. Jeden na věci složitější, druhý na ty jednoduší. A pak před každým projektem učinit rozhodnutí, co je pro něj vhodnější. Samozřejmě, nejlépe se naučit ty nejznámější, ty, které mají dobrou velkou komunitu, ty, u kterých máte jistotu, že vývoj za týden neskončí.

Já osobně mám zkušenosti s CakePHP. Ostatní jsem maximálně jen chvilku testoval a myslím, že by ode mě bylo pošetilé je hodnotit. Přesto si dovolím uvést své dojmy (pozitivní i negativní).

  • CakePHP: celkem jednoduchý na naučení; celkem mocný; kvalitní komunita; dlouhý vývoj nové verze
  • Zend Framework: velmi mocný; pokrývající veškeré potřeby při tvorbě jakýkoliv web. aplikací; veliká komunita; složitý; dlouhé názvy;
  • CodeIgniter: maličký, jednoduchý; vyvíjen jednou firmou, ne komunitou; v něčem lepší než Cake, v něčem velmi „hloupý“ – např. nemá layouty

Bohužel s ostatními nemám žádné valné zkušenosti. Cílem toho článku není pomoci vám vybrat framework. Bohužel to si musí každý zkusit sám a pak se rozhodnout.

Sám jsem ale po čase zjistil, že bych možná raději i vlastní framework. Nakonec řádek kódu dal s dalším řádkem kódu zdroják a dnes se můžu těšit ze své vlastní práce jménem Háefko. Vlastní framework má samozřejmě výhody, i nevýhody. Víte, co od něj můžete čekat, kde se co a jak dělá. Na druhou stranu, musíte si to všechno naprogramovat sami, odladit a odbugovat. Minimálně je to velmi užitečná zkušenost.

Co říci závěrem

Doufám, že jsem ve vás vzbudil aspoň malý zájem, či probudil chtíč vědět více. Nebo alespoň informoval o možnostech dnešního web-developingu v PHP. Zdrojů není mnoho, ale kdo hledá, najde.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jan ŠkrášekHonza pracuje jako webdeveloper, věnuje se vývoji Nette\Database a Nextras komponentám. Mnoho času věnuje komunitnímu portálu signály.cz. Honza je taky fanouškem XML technologií.
Web     Twitter    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý