+ All Categories
Home > Internet > Symfony vs Nette vs Phalcon

Symfony vs Nette vs Phalcon

Date post: 25-May-2015
Category:
Upload: vojta-svoboda
View: 708 times
Download: 9 times
Share this document with a friend
Description:
Srovnání Symfony, Nette a Phalcon frameworku. Hlavní parametry a srovnání jednotlivých komponent.
74
Framework Symfony vs Nette vs Phalcon
Transcript
Page 1: Symfony vs Nette vs Phalcon

Framework Symfony

vs Nette vs Phalcon

Page 2: Symfony vs Nette vs Phalcon

Osnova

• Co je to framework?• Srovnání frameworků• Aplikační cyklus• Komponenty frameworku

Page 3: Symfony vs Nette vs Phalcon

Co je to framework

• Sada knihoven, aplikační cyklus• Znovupoužitelnost (mailing, šablony, přihlašování,

testování)

• Zaměření (web-app, testování)• Filosofie, architektura• Komunita, rozšíření, opravy, dokumentace,

testy, nové funkce• Licence, sponzoring, brand

Page 4: Symfony vs Nette vs Phalcon
Page 5: Symfony vs Nette vs Phalcon

Srovnání jednotlivých frameworků

Page 6: Symfony vs Nette vs Phalcon

Symfony 2.5.0-dev

• PHP >5.3.3, open source, community-driven• +1000 code contributors on GitHub• +150.000 developers, +2500 bundles• +1.000.000 monthly downloads• Since 2005, under MIT license• Drupal, phpBB, Yahoo!, Joomla

Trend commitů na GitHub

Page 7: Symfony vs Nette vs Phalcon

Nette 2.2.2

• PHP 5.3.1 (PHP 5.2), open-source• 104 contributors (Symfony +1000)• 13.000 dl/m (Symfony +1.000.000)• cca 100 add-ons (Symfony +2.500)• Since 2008, under New BSD license• Slevomat, Mladá fronta, Csfd.cz, SocialBakers

Page 8: Symfony vs Nette vs Phalcon

Phalcon

• PHP 5.3.9 (nutné GCC), open-source• 58 contributors (Nette 104, Symfony 1000+)• Since 2011, under New BSD license

Page 9: Symfony vs Nette vs Phalcon

Phalcon

• PHP 5.3.9 (nutné GCC), open-source• 58 contributors (Nette 104, Symfony 1000+)• Since 2011, under New BSD license

Page 10: Symfony vs Nette vs Phalcon
Page 11: Symfony vs Nette vs Phalcon

Instalace

Page 12: Symfony vs Nette vs Phalcon

Instalace Symfony

• composer create-project symfony/framework-standard-edition myproject/ ~2.5

Page 13: Symfony vs Nette vs Phalcon

Instalace Nette

• composer create-project nette/sandbox

Page 14: Symfony vs Nette vs Phalcon

Instalace Phalcon

• Build– sudo ./cphalcon/build/install– extension=phalcon.so

• Hotové buildy (PHP 5.3/5.4/5.5)– sudo brew install php54-phalcon– extension=php_phalcon.dll

• Doplňky - phalcon dev-tools (kvůli code-complete; jsou vidět pouze PHP interfaces)

Page 15: Symfony vs Nette vs Phalcon

Aplikační cyklus

Page 16: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Předdef. 3 prostředí (dev, test, prod)– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání kontroléru)• MVC (kontroléry, šablony)

Page 17: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání controlleru)• MVC (kontroléry, šablony)

Page 18: Symfony vs Nette vs Phalcon

HTTP

• Request(), Response()

Page 19: Symfony vs Nette vs Phalcon
Page 20: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání controlleru)• MVC (kontroléry, šablony)

Page 21: Symfony vs Nette vs Phalcon

Konfigurace Symfony

YAML formát

Page 22: Symfony vs Nette vs Phalcon

Konfigurace Nette

Neon formát

Page 23: Symfony vs Nette vs Phalcon

Konfigurace Phalcon

INIformát

Page 24: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání controlleru)• MVC (kontroléry, šablony)

Page 25: Symfony vs Nette vs Phalcon

Bundles

Existuje i CLI generátor, který adresářovou strukturu Bundles vygeneruje. V rámci bundlesJsou I assety (CSS/JS/IMG). CLI generátor I bundle zavede do jádra, viz další slide.

Page 26: Symfony vs Nette vs Phalcon

Registrace Bundles

Bundles lze načítat I v závislosti na prostředí.

Page 27: Symfony vs Nette vs Phalcon

Registrace Bundles Nette

Page 28: Symfony vs Nette vs Phalcon

Registrace Bundles Phalcon

Page 29: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání kontroléru)• MVC (kontroléry, šablony)

Page 30: Symfony vs Nette vs Phalcon

Routování

http://www.blog.cz/clanek/prvni-clanek/

Article:detail:prvni

Page 31: Symfony vs Nette vs Phalcon

Routování

• Možnosti: YAML, XML, PHP, PHP anotace

/blog/{slug} => AcmeBlogBundle:Blog:show

Page 32: Symfony vs Nette vs Phalcon

Routování

/blog/{slug} => AcmeBlogBundle:Blog:show

Page 33: Symfony vs Nette vs Phalcon

Routování

/blog/{slug} => AcmeBlogBundle:Blog:show

Page 34: Symfony vs Nette vs Phalcon

Routování

V anotaci lze I definovat formát vrácených dat (HTML, XML, JSON).

Page 35: Symfony vs Nette vs Phalcon

Routování Nette

Page 36: Symfony vs Nette vs Phalcon

Routování Phalcon

Page 37: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání kontroléru)• MVC (kontroléry, šablony)

Page 38: Symfony vs Nette vs Phalcon

Kontroléry

Nutnost explicitně požádat o vykreslení šablony, buď pomocí anotace @Template(), nebo $this->render(). Funkce vrací array, nebo Response().

Page 39: Symfony vs Nette vs Phalcon

Kontroléry (anotace)

Anotace pro cache.

Page 40: Symfony vs Nette vs Phalcon

Kontroléry (anotace)

Page 41: Symfony vs Nette vs Phalcon

Kontroléry (anotace)

Page 42: Symfony vs Nette vs Phalcon

Kontroléry Nette

Page 43: Symfony vs Nette vs Phalcon

Kontroléry Phalcon

Page 44: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání kontroléru)• MVC (kontroléry, šablony)

Page 45: Symfony vs Nette vs Phalcon

Šablony• Twig (i jako samostatný projekt)• extends, block, include, context escaping• {{ ... }}: "Says something”, {% ... %}: "Does something"

Page 46: Symfony vs Nette vs Phalcon

Šablony

• functions, helpers (filters)

Page 47: Symfony vs Nette vs Phalcon

Šablony Nette

Latte – i jako samostatný projektFunkce, filtry (helpery)Kontextové escapování (jako ostatní)Syntaxí vychází ze Smarty

Page 48: Symfony vs Nette vs Phalcon

Šablony Phalcon

Volt – extendování, funkce, helperyRender level – no_render, action, layout

Page 49: Symfony vs Nette vs Phalcon

Aplikační cyklus

• Front-controller (.htaccess -> index.php)• $kernel = new AppKernel('dev', true);– Načtení konfiguračních souborů– Registrace Bundles

• Routování (hledání kontroléru)• MVC (kontroléry, šablony)

Page 50: Symfony vs Nette vs Phalcon

Model (MVC)

• Doctrine 2 ORM + DBAL• Entity

Page 51: Symfony vs Nette vs Phalcon
Page 52: Symfony vs Nette vs Phalcon
Page 53: Symfony vs Nette vs Phalcon
Page 54: Symfony vs Nette vs Phalcon
Page 55: Symfony vs Nette vs Phalcon

Model Nette

• Nette/Database (MySQL, PostgreSQL, Sqlite 3, Sqlite 2, Oracle, MS SQL, ODBC)

Page 56: Symfony vs Nette vs Phalcon
Page 57: Symfony vs Nette vs Phalcon
Page 58: Symfony vs Nette vs Phalcon

• Konfigurace, routování, MVC

• Debugging• Formuláře• CLI

Page 59: Symfony vs Nette vs Phalcon

• Konfigurace, routování, MVC

• Debugging• Formuláře• CLI

Page 60: Symfony vs Nette vs Phalcon

Debugging• Web Debug Toolbar

Page 61: Symfony vs Nette vs Phalcon
Page 62: Symfony vs Nette vs Phalcon

Debugging Nette

• Laděnka (Nette/Diagnostic/Debugger)

• E-mails, FireBug

Page 63: Symfony vs Nette vs Phalcon

Debugging Phalcon

Page 64: Symfony vs Nette vs Phalcon

• Konfigurace, routování, MVC

• Debugging• Formuláře• CLI

Page 65: Symfony vs Nette vs Phalcon

Formuláře

Page 66: Symfony vs Nette vs Phalcon

Formuláře

Page 67: Symfony vs Nette vs Phalcon

Formuláře Nette

Page 68: Symfony vs Nette vs Phalcon

Formuláře Nette

Page 69: Symfony vs Nette vs Phalcon

Formuláře Phalcon

Nemá default renderer, takže se formuláře musí vykreslovat ručně, nebo sirenderer napsat sám.

Page 70: Symfony vs Nette vs Phalcon

• Konfigurace, routování, MVC

• Debugging• Formuláře• CLI

Page 71: Symfony vs Nette vs Phalcon

CLI nástroje

• php app/console• apc, assetic, assets, cache, container, doctrine• generate, orm, router, server, twig

• generate – doctrine entity, crud, form, bundle

Page 72: Symfony vs Nette vs Phalcon

CLI v Nette

• -

• Doplněk do NetBeans, PhpStorm• Skript pro FTP deploy

Page 73: Symfony vs Nette vs Phalcon

CLI v Phalconu

• Phalcon Developer Tools• create-controller, create-model, create-project• scaffold, migration, webtools

Page 74: Symfony vs Nette vs Phalcon

Recommended