PHP, známý po celém světě jako nejoblíbenější skriptovací jazyk na straně serveru, se hodně rozvinul od dob, kdy se ve statických HTML souborech začaly objevovat první inline fragmenty kódu.

V těch časech museli vývojáři budovat složité weby a webové aplikace, a nad jistou úrovní složitosti zabíralo příliš mnoho času a úsilí vždycky začínat úplně od začátku. Odtud vznikla potřeba strukturovanějšího přirozeného způsobu vývoje. Adekvátní řešení této potřeby poskytují vývojářům PHP frameworky.

Adekvátní řešení této potřeby poskytují vývojářům PHP frameworky.

V tomto příspěvku jsme pečlivě vytřídili deset oblíbených PHP frameworků, které mohou nejlépe ulehčovat a zefektivňovat proces backendového webového vývoje.

Článek byl původně vydán na magazínu hongkiat.com. V originále si ho můžete přečíst zde.

Proč vůbec používat nějaký PHP framework

Podívejme se nejprve na nejpádnější důvody, proč mnozí vývojáři rádi používají PHP frameworky, a jak mohou tyto frameworky pozvednout úroveň vývojového procesu. Co PHP frameworky poskytují:

  • Umožňují rychlý vývoj
  • Poskytují dobře organizovaný, opětovně využitelný a udržovatelný kód
  • Umožňují růst v průběhu času, protože webové aplikace běžící na frameworcích jsou škálovatelné
  • Zbavíte se starostí souvisejících s nízkoúrovňovou bezpečností webu
  • Dodržují vzor MVC (Model-View-Controller), který zajišťuje separaci prezentace a logiky
  • Prosazují moderní webové vývojové postupy, mezi něž patří nástroje objektově orientovaného programování

1. Laravel

Přestože je Laravel poměrně nový PHP framework (byl vydán v roce 2011), je podle nejnovějšího online průzkumu na webu Sitepoint nejoblíbenějším frameworkem mezi vývojáři. Laravel má obrovitý ekosystém s platformou připravenou k okamžitému hostování a rozmisťování a jeho oficiální web nabízí mnoho návodů ve formě screencastů, jimž zde říkají Laracasty.

Laravel má mnoho schopností, které činí možným rychlý vývoj aplikací. Má také svůj vlastní odlehčený šablonový engine s názvem “Blade”, elegantní syntax usnadňující úlohy, které je třeba dělat často, jako jsou autentizace, relace (sessions), řazení do front, cachování a RESTful směrování. Laravel také zahrnuje lokální vývojové prostředí zvané Homestead, což je zabalený Vagrant box.

laravel

2. Symfony

Komponenty frameworku Symfony 2 používají mnohé impozantní projekty, jako jsou systém pro řízení obsahu Drupal nebo software phpBB pro spouštění fór, ale spoléhá se na něj i Laravel – framework uvedený výše. Symfony má rozsáhlou vývojářskou komunitu a mnoho vášnivých příznivců.

Komponenty frameworku Symfony jsou opětovně využitelné knihovny PHP, s nimiž můžete kompletovat nejrůznější úlohy, mezi něž patří vytváření formulářů, konfigurace objektů, směrování, autentizace, šablonování a mnoho dalších. Kteroukoli z těchto komponent můžete nainstalovat s manažerem závislostí PHP, což je Composer. Na webu Symfony najdete skvělou výkladní skříň, kde můžete nakouknout do projektů, které vývojáři uskutečnili s pomocí tohoto šikovného frameworku.

symfony

3. CodeIgniter

CodeIgniter je odlehčený PHP framework, který už je téměř deset let starý (původně byl vydaný v roce 2006). CodeIgniter má velmi přímočarý instalační proces, který požaduje jen minimum konfigurace, takže může ušetřit soustu trápení. Je také ideální volbou, pokud se chcete vyvarovat konfliktů s verzemi PHP, protože funguje hladce téměř na všech sdílených a dedikovaných hostovacích platformách (v současné době požaduje jen PHP 5.2.4).

CodeIgniter není striktně založený na vývojovém vzoru MVC. Používat třídy komponenty řadiče (Controller) je sice nutné, ale modely a pohledy povinné nejsou, můžete používat své vlastní jmenné a kódovací konvence, důkaz toho, že CodeIgniter poskytuje vývojářům značnou volnost. Pokud si ho stáhnete, uvidíte, že zabírá jen okolo 2MB, takže je to štíhlý framework, dovoluje však přidávat pluginy třetích stran, budete-li potřebovat komplikovanější funkcionality.

codeigniter

4. Yii 2

Pokud zvolíte framework Yii, dodáte svému webu vzpruhu pro výkon, protože je rychlejší než ostatní PHP frameworky, používá totiž extenzívně techniku „pohodového“ načítání (lazy loading). Yii 2 je čistě objektově orientovaný a je založený na kódovacím pojetí DRY (Don’t Repeat Yourself, „neopakujte se“), takže poskytuje dost jasnou a logickou kódovou bázi.

Yii 2 je integrovaný s jQuery, dostáváte ho se sadou funkcí využívajících AJAX, implementuje rovnou použitelný mechanizmus pro skiny a motivy, takže to může být skvělá volba pro ty, kdo přicházejí z frontendového zázemí. Má také mocný generátor kódu tříd zvaný Gii. Usnadňuje objektově orientované programování, rychlou tvorbu prototypů a poskytuje webově založené rozhraní umožňující kód, který potřebujete, generovat interaktivně.

yii2

5. Phalcon

Framework Phalcon byl vydán v roce 2012 a rychle si mezi vývojáři PHP vydobyl popularitu. Říká se o něm, že je rychlý jako sokol (anglicky falcon), protože byl napsán v jazycích C a C++, aby se dosáhlo nejvyšší možné úrovně optimalizace výkonu. Dobrou zprávou je, že se nemusíte učit jazyk C, protože funkcionalita je vystavena jako PHP třídy připravené k okamžitému použití v jakékoli aplikaci.

Protože se Phalcon doručuje jako C-rozšíření, je jeho architektura optimalizovaná na nízkých úrovních, což signifikantně redukuje zátěž typicky se vyskytující u aplikací založených na vzoru MVC. Phalcon nejen pozvedá rychlosti vykonávání, zároveň také snižuje používání zdrojů. Ve Phalconu je také přibaleno mnoho skvělých funkcí, jako jsou univerzální automatické načítání, správa assetů, bezpečnost, podpora vícejazyčných aplikací, cachování a mnoho dalších. Protože je tento framework dobře zdokumentovaný a rovnou použitelný, rozhodně stojí za to si ho vyzkoušet.

phalcon

6. CakePHP

CakePHP už má za sebou celou dekádu existence (první verze byla vydaná v roce 2005), pořád však patří mezi nejoblíbenější PHP frameworky, protože vždy dbal na to, aby držel krok s dobou. Nejnovější verze CakePHP 3.0 rozšířila správu relací, vylepšila modularitu tím, že oddělila několik komponent, a zvýšila způsobilost vytvářet soběstačnější knihovny.

CakePHP má skutečně pozoruhodnou výkladní skříň, pohání weby proslulých značek, jako jsou BMW, Hyundai a Express. Je to vynikající nástroj pro vytváření webových aplikací, které potřebují vysokou úroveň zabezpečení, protože má mnoho zabudovaných bezpečnostních funkcí, jakou jsou validace vstupu, prevence injektáže SQL, prevence skriptování přes weby (XSS, cross-site scripting), ochrana před podvrhnutými požadavky (CSRF, cross-site request forgery), a mnoho dalších.

cakephp

7. Zend Framework

Zend je robustní a stabilní PHP framework zabalený spolu se spoustou konfiguračních voleb, proto se obvykle nedoporučuje pro menší projekty, je však vynikající pro ty složitější. Mezi partnery Zend patří takové společnosti, jako IBM, Microsoft, Google a Adobe. Nadcházející hlavní vydání, Zend Framework 3, bude optimalizované pro PHP 7, bude však i nadále podporovat PHP 5.5.

Současné vydání, Zend Framework 2, má také mnoho skvělých funkcí, mezi něž patří kryptografické kódovací nástroje, rovnou použitelný editor typu „táhni a pusť“ s podporou front-endových technologií (HTML, CSS, JavaScript), okamžité online ladění a nástroje pro testování PHP jednotek (PHP Unit testing), a databázový průvodce. Zend Framework byl vytvořen metodologií Agile, která usnadňuje doručování vysoce kvalitních aplikací klientům na úrovni korporací.

zend

8. Slim

Slim je PHP mikro framework, který poskytuje vše, co potřebujete, a nic, co nepotřebujete. Mikro frameworky jsou v designu minimalistické, jsou vynikající pro menší aplikace, pro které by byl framework, který má plnohodnotnou výbavu pro úplně všechno, něco jako kanón na vrabce. Tvůrce Slimu se inspiroval mikro frameworkem Ruby, který se jmenuje Sinatra.

Slim používají mnozí PHP vývojáři pro vývoj API a služeb vyhovujících pravidlům REST (RESTful API, resp. služby). Slim přichází s takovými schopnostmi, jako jsou směrování URL, HTTP cachování na straně klienta, šifrování relace cookie, a podporuje také rychlé notifikace (flash messages) přes požadavky HTTP. Jeho Uživatelská příručka se čte dobře, a pokud se zajímáte o nové schopnosti nadcházejícího hlavního vydání (už je ve fázi beta), podívejte se na úvodní video o Slim 3.

slim

9. FuelPHP

FuelPHP je flexibilní plnohodnotný PHP framework, který podporuje nejen obyčejný vzor MVC, ale na úrovni architektury též jeho rozvinutou verzi, HMVC (Hierarchical Model-View-Controller). FuelPHP přidává mezi vrstvy Controller a View nepovinnou třídu s názvem Presenter (dříve se jmenovala ViewModel), aby obsahovala logiku potřebnou ke generování pohledů.

FuelPHP je modulární a rozšiřitelný, dbá na bezpečnostní záležitosti tím, že poskytuje funkce jako filtrování vstupu a URI a zakódování výstupu, a přichází se svým vlastním autentizačním frameworkem, a s mnoha dalšími sofistikovanými schopnostmi a podrobnou dokumentací.

fuelphp

10. PHPixie

PHPixie je zcela nový framework, odstartoval v roce 2012 s cílem vytvořit vysoce výkonný framework pro weby určené jen ke čtení. PHPixie stejně jako FuelPHP implementuje návrhový vzor HMVC a je vybudovaný pomocí nezávislých komponent, které lze používat také bez samotného frameworku. Komponenty PHPixie jsou stoprocentně prověřené přes jednotkové testy a požadují jen minimum závislostí.

Oficiální web obsahuje návod, v němž se prohlašuje, že se framework naučíte za třicet minut, a jejich blog obsahuje mnoho podrobných praktických případů užití. Mezi funkce, které zde najdete, patří standardní relační mapování objektů (ORM, object-relational mapping), cachování, validace vstupu i výbava pro autentizaci a autorizaci. PHPixie také dovoluje používat značkovací jazyk HAML, umožňuje migraci schématu a má sofistikovaný systém směrování.

11. Nette

Poznámka překladatele: Zajímavé je, že mezi deset nejlepších frameworků nepatří Nette, který se ve zmiňovaném průzkumu Sitepointu uvádí jako nejoblíbenější v České republice.

Když jsem se před lety pokoušel napsat web v PHP, bylo frameworků jako šafránu a pochybné kvality. V současné době bych si vůbec ne věděl rady, který z nich vybrat, a jsem rád, že nejsem v nějaké firmě na pozici, kdy bych měl o tom závazně rozhodnout.

Anna Monus

Anna píše pro Hongkiat.com, je webová vývojářka a programátorka, zajímá se o vědu, umělou inteligenci a o technologie narušující status quo.

Článek byl původně zveřejněn na serveru Hongkiat.com

Přeložil: RNDr. Jan Pokorný

4 Příspěvků v diskuzi

  1. Ja se ani nedivim, ze Nette neni mezi top 10, protoze na SitePoint se dostalo tak vysoko jen diky CZ a SK. Nikde ve svete jej neznaji a pro ne jsou nejlepsi jine frameworky. Nerikam, ze Nette neni dobre, sam mam na nich nekolik projektu, ale bez CZ/SK komunity (hlasujicich) by se do vysledku ani nedostalo.

Odpovědět