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

PHP frameworkyPHP frameworky

 

PHP frameworky

Google       Google       21. 2. 2008       28 921×

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.

Reklama
Reklama

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

Reklama
Reklama
Obrázek ke článku NEWTON Media prohledá 200  milionů mediálních zpráv během sekund díky Cisco UCS

NEWTON Media prohledá 200 milionů mediálních zpráv během sekund díky Cisco UCS

Česká společnost NEWTON Media provozuje největší archiv mediálních zpráv ve střední a východní Evropě. Mezi její zákazníky patří například ministerstva, evropské instituce nebo komerční firmy z nejrůznějších oborů. NEWTON Media rozesílá svým zákazníkům každý den monitoring médií podle nastavených klíčových slov a nabízí online službu, kde lze vyhledat mediální výstupy v plném znění od roku 1996.

Obrázek ke článku Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý