Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Miniaturní PHP frameworky: Protože na velikosti záleží!

V PHP si může vývojář vybrat z mnoha desítek či stovek frameworků, které s větší či menší měrou komplexity a komfortu řeší nejčastější problémy či nejčastěji opakované práce, které řeší téměř každý vývojář. Pojďme se podívat na některé frameworky, které mají společnou jednu věc: Jsou opravdu miniaturní!

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Každý PHP vývojář (hodný toho jména) zná názvy jako CakePHP, Symfony, Zend Framework. Čeští pak i Nette (pokud ne, můžete se s ním seznámit v seriálu Začínáme s Nette Frameworkem na Zdrojáku). Framework nám může ušetřit spoustu (rutinní a otravné) práce na běžných projektech.

Diskusní fóra jsou plná programátorů, co se dokáží dohadovat dlouhé týdny až roky o tom, který framework je „nejlepší“, a argumentují u toho především sáhodlouhými soupisy toho, co jejich favorit umí. Někteří argumentují i poněkud hůře změřitelnými faktory, jako je kvalita dokumentace či „strmost křivky učení“. A přesně podle známého pravidla: O věcech, které nelze objektivně rozhodnout, se lze dohadovat donekonečna. Proto se v tomto článku vyhneme hodnotícím slovům jako „nejlepší“ a pro zjednodušení budeme předpokládat, že „nejlepší“ framework je takový, v němž

– lze napsat požadovanou aplikaci

– náš vývojář umí pracovat.

Jistě, jsou vývojáři, kteří se naučí pracovat se Zendem a napíší v něm cokoli, od microsite po e-shop kombinovaný se sociální sítí. Jiní dobře znají tři, čtyři „své oblíbené“, a konkrétní framework pro daný úkol volí podle zadání. Pokud patříte k těm druhým, určitě vám přijde vhod následující seznam tipů na frameworky, které neřeší všechno, ale řeší to hlavní, řeší to (pokud možno) elegantně a především: Nezaberou víc než pár desítek, nejvýš stovek kilobajtů!(Čte­náři téma miniframeworků živě vnímají, o čemž svědčí mj. i to, že článek o miniframeworku Limonade minule rozvášnil některé čtenáře až k psaní štěpných komentářů (to je ta slušná verze) – pozn.aut.)

Proč se zabývat (mini)frameworkem?

Máte pravdu, nemusíte jej používat. Ostatně, i z Prahy do Ostravy se dá dojít pěšky. Ale dobrý produktivní programátor nevynalézá kolo a nedělá práci, kterou už dělal nebo kterou za něj udělal někdo jiný. (Rád bych zdůraznil slovo „produktivní“. Ti programátoři, kteří nejsou tlačeni zákazníkem, termínem a manažerem k „produktivitě teď a tady“, mají dost času na vymýšlení vymyšleného, a mají i naději, že to vymyslí líp. – pozn. aut.)

V každodenní praxi se vyskytují úlohy, které jsou takříkajíc „na jedno odpoledne“ – rozsahem malé, víceméně je potřeba jen vhodně „ošatit kostru“. Celé to „zajímavé“ spočívá v nějaké důvtipné myšlence. A právě znalost vhodného miniframeworku umožňuje vývojářům, aby se v takovou chvíli soustředili právě na tu zajímavou myšlenku a neřešili „jak napíšeme routování“ a „jak ošetříme sessions“ či „budeme muset implementovat OpenID, to bude spousta práce…“ Tohle všechno vyřešil už framework… A nemusí to být vždy jen mnohamegová obluda, kterou budete uploadovat na server dvacet minut a další hodinu nastavovat.

Pojďme se na některé zajímavé podívat.

Kohana

Kohana

Framework, který vznikl ze známého CodeIgniteru přepracováním pro verzi PHP5. Kohana je pravděpodobně nejznámější z dnešního seznamu. Se svými cca 1.5MB patří mezi miniframeworky k obrům. V plné distribuci naleznete ale vše, co potřebujete k vytvoření jednoduché webové aplikace. Nabízí (samosebou) MVC, podporu pro UTF-8, vnitřní komunikaci pomocí událostí (events) nebo filtrování vstupních údajů proti XSS. V knihovnách lze nalézt např. i vlastní ORM (Object-Relational Mapper).

Při stažení si navíc můžete vybrat, zda chcete do balíku zahrnout následující moduly:

  •  – Modul pro vytváření komprimovaných archivů, podporuje formáty zip, tar, gzip a bzip2.
  •  – Řeší autentizaci uživatelů a jejich správu. 
  •  – Integruje Google Maps, geolokaci a podporu GMaps API.
  •  – Dynamicky vytváří dokumentaci (zatím betaverze)
  •  – Poskytuje připojení k platebním branám, jako jsou Authorize.net, PayPal, Trident, Trust Commerce nebo YouPay.

Kohana má velmi dobře zpracovanou dokumentaci (wiki) a jsou k dispozici i dobře zpracované tutorialy, které urychlí počáteční fázi učení.

Chcete se naučit o PHP víc?

Akademie Root.cz pořádá školení Úvod do PHP. Kurz vede zkušený lektor Jakub Vrána a je určen všem současným a budoucím webovým vývojářům, kteří se chtějí od základu seznámit s programovacím jazykem PHP. Během kurzu se účastníci naučí vytvářet webové aplikace v PHP od těch nejjednodušších až po ty poměrně složité a seznámí se se všemi klíčovými vlastnostmi jazyka. Máte zájem o jiné školení? Napište nám!

Rapyd

Rapyd

Rapyd je miniaturní framework, zaměřený na vytváření aplikací, založených na vzoru CRUD (Create, Retrieve, Update, Delete) – tedy vzor, používaný u databázových aplikací. Nabízí sadu komponent a tříd, které pomohou vytvořit např. jednoduché rozhraní k databázi. Celý framework se vešel do padesáti souborů, které zabírají necelý půlmegabajt. Kromě práce s databází samosebou nabízí i (téměř povinný) MVC pattern, „hezká“ URL či podporu modulů.

Na webu Rapydu se můžete podívat na ukázku aplikace, postavené na tomto frameworku.


Epicode

Spíš než kompaktní framework připomíná epicode skládačku. Začal jako miniaturní MVC framework a postupem času se vyvinul v sadu nástrojů, které mohou být použity společně či zvlášť. Zahrnuje cachování podporu session, podporu databází, ověřování formulářů, knihovnu pro Twitter, OAuth a asynchronní cURL. Epicode je dosti spartánský framework, dokonce nemá ani vlastní web (používá github). K dispozici je poměrně přehledná dokumentace.

Extra Light Framework

ELF PHP je velmi malý PHP framework, který implementuje (jak jinak) MVC architekturu. Po rozbalení zabírá 72 kB, do kterých se toho však vešlo poměrně hodně. Posuďte sami:

  • Cachování
  • Routování URL
  • Logování
  • Nástroj pro práci s obrázky
  • Vrstva pro databázovou abstrakci

Do další verze jsou plánovány nástroje jako session, pomocná třída pro stránkování či upload souborů.

BaseApp

BaseApp Framework je určen pro samostatné vývojáře nebo malé týmy, které hledají vhodný odrazový můstek. Pokud znáte trochu CakePHP, bude vám API připadat povědomé. BaseApp se inspiroval právě u CakePHP a CodeIgniteru, ale pokouší se to nejdůležitější vměstnat do padesáti kilobytů (kompresovaného kódu). BaseApp nabízí všechny běžné funkce, jaké mají „velké“ frameworky:

  • Podpora PHP 5.
  • Plné MVC (ale může být použit jako knihovna funkcí).
  • API je do značné míry kompatibilní s CakePHP.
  • Funkce Active Records a ORM.
  • Databázová vrstva s podporou AdoDB.
  • Podpora pro ladění a ošetřování chyb (vestavěná podpora pro FireBug).
  • Rozšiřitelná obsluha cookies a session.
  • Routování URL.
  • Podpora AJAX (využívá jQuery).

Framework je hostován na Google code.

Něco trochu jiného: PHP CLI

Tento framework k předchozím moc nezapadá. Není totiž zaměřen na vytváření webových aplikací, ale používá PHP jako nástroj pro příkazovou řádku (Command-Line Interface). PHP-CLI framework vám usnadní psaní aplikací pro příkazovou řádku. Řeší za vás parsování parametrů či výstup do STDOUT a STDERR. Podporuje i ladění či výpis tabulek. Bohužel k tomuto frameworku není žádná dostupná dokumentace, můžete si jej pouze stáhnout a „prozkoumat“. Tento framework je používán nástrojem Drupal Analysis Tool.

Závěr

Miniaturní frameworky jistě najdou uplatnění při vytváření malých webů. Dobré jsou rovněž jako zdroj inspirace pro zkušené vývojáře. Je na místě připomenout, že „minimální velikost“ je svým způsobem technický hack. Rozhodně je nelze doporučit začátečníkům; v nezkušených rukou mohou napáchat víc škody než užitku. Zkušený vývojář však mezi nimi může najít vhodný nástroj např. pro rychlé prototypování. Těžko si lze představit, že na takovém frameworku budou postaveny celé velké weby.

Text vychází z článku Damn Small PHP Frameworks. Because size does matter., který vyšel na webu jees.eu a jehož autorem je Kerasiotis Vasileios

Martin Malý

Martin Maly

Začal programovat v roce 1984 s progra­movatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď je rád, že neprogramuje…

Školení Google+ pro firmy

DW - Školení PPC
  • Jak využít Google+ pro firemní komunikaci a marketing.
  • Čím se liší Google+ od Twitteru a Facebooku z pohledu firemního využití.
  • Jak využít Google+ v souladu s pravidly užívání.
  • Založení Google+ Page (Stránky) krok po kroku, včetně praktických tipů.

Detailní informace o školení Google+ »

Přehled názorů

kontext
Karel Čížek 16. 12. 2009 03:22
Nový
└ 
Re: kontext
Martin 16. 12. 2009 06:26
Nový
 
└ 
Re: kontext
Peter Helcmanovsky 16. 12. 2009 10:46
Nový
Kohana
Michal Šatal 16. 12. 2009 09:53
Nový
Adminer editor
Vít Šesták 16. 12. 2009 10:57
Nový
└ 
Re: Adminer editor
Martin Malý 16. 12. 2009 11:01
Nový
 
└ 
Re: Adminer editor
Vít Šesták 16. 12. 2009 11:04
Nový
 
 
└ 
Re: Adminer editor
Martin Malý 16. 12. 2009 11:13
Nový
 
 
 
├ 
Re: Adminer editor
Vít Šesták 16. 12. 2009 12:56
Nový
 
 
 
└ 
Re: Adminer editor
Jakub Vrána 17. 12. 2009 17:33
Nový
 
 
 
 
└ 
Re: Adminer editor
Vít Šesták 17. 12. 2009 17:59
Nový
protože na slovníku záleží
jos 16. 12. 2009 11:22
Nový
└ 
Re: protože na slovníku záleží
Martin Malý 16. 12. 2009 11:30
Nový
 
└ 
Re: protože na slovníku záleží
jos 16. 12. 2009 12:13
Nový
Fuj ...
Mastodont 16. 12. 2009 12:09
Nový
└ 
Re: Fuj ...
Martin Malý 16. 12. 2009 12:18
Nový
myself
honza 16. 12. 2009 20:08
Nový
└ 
Re: myself
Mastodont 16. 12. 2009 21:57
Nový
 
└ 
Re: myself
jos 17. 12. 2009 13:46
Nový
Já jsem pro vlastní FW
Lukáš Francálek 16. 12. 2009 23:16
Nový
├ 
Re: Já jsem pro vlastní FW
Láďa 17. 12. 2009 01:00
Nový
│
└ 
Re: Já jsem pro vlastní FW
Lukáš Francálek 17. 12. 2009 02:14
Nový
│
 
├ 
Re: Já jsem pro vlastní FW
Deter 17. 12. 2009 12:37
Nový
│
 
│
└ 
Re: Já jsem pro vlastní FW
honza 17. 12. 2009 17:10
Nový
│
 
│
 
└ 
Re: Já jsem pro vlastní FW
komak 17. 12. 2009 22:38
Nový
│
 
└ 
Re: Já jsem pro vlastní FW
Jiří Knesl 18. 12. 2009 00:54
Nový
│
 
 
└ 
Re: Já jsem pro vlastní FW
Lukáš Francálek 18. 12. 2009 11:13
Nový
│
 
 
 
├ 
Re: Já jsem pro vlastní FW
Petr Bíža 18. 12. 2009 11:20
Nový
│
 
 
 
└ 
Re: Já jsem pro vlastní FW
Jiří Knesl 23. 12. 2009 11:22
Nový
└ 
Re: Já jsem pro vlastní FW
Michal Zahradnicek 25. 12. 2009 17:52
Nový
Je tu i pár dalších zajímavých frameworků
Martin Kopta 21. 12. 2009 17:11
Nový
└ 
Re: Je tu i pár dalších zajímavých frameworků
Martin Malý 21. 12. 2009 17:47
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem