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

PHP logo

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í!

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

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 32

Přehled komentářů

kaja47 kontext
Martin Re: kontext
Ped Re: kontext
Michal Šatal Kohana
v6ak Adminer editor
Martin Malý Re: Adminer editor
v6ak Re: Adminer editor
Martin Malý Re: Adminer editor
v6ak Re: Adminer editor
Jakub Vrána Re: Adminer editor
v6ak Re: Adminer editor
jos protože na slovníku záleží
Martin Malý Re: protože na slovníku záleží
jos Re: protože na slovníku záleží
Mastodont Fuj ...
Martin Malý Re: Fuj ...
honza myself
Mastodont Re: myself
jos Re: myself
ITGuru Já jsem pro vlastní FW
Láďa Re: Já jsem pro vlastní FW
ITGuru Re: Já jsem pro vlastní FW
Deter Re: Já jsem pro vlastní FW
honza Re: Já jsem pro vlastní FW
komak Re: Já jsem pro vlastní FW
Jiří Knesl Re: Já jsem pro vlastní FW
ITGuru Re: Já jsem pro vlastní FW
fos4 Re: Já jsem pro vlastní FW
Jiří Knesl Re: Já jsem pro vlastní FW
Michal Zahradnicek Re: Já jsem pro vlastní FW
Martin Kopta Je tu i pár dalších zajímavých frameworků
Martin Malý Re: Je tu i pár dalších zajímavých frameworků
Zdroj: https://www.zdrojak.cz/?p=3137