Upload
natalia-stanko
View
250
Download
0
Embed Size (px)
DESCRIPTION
Symfony jest z jednej strony kompleksowym frameworkiem, z drugiej zbiorem samodzielnych i niezależnych komponentów. Jest łatwy do nauki i jednocześnie szeroko konfigurowalny. Sprawdza się zarówno dla małych jak i dużych projektów. Pracę z nim cechuje szybkie tworzenie aplikacji.
Citation preview
PROSTOTA I MOŻLIWOŚCI FRAMEWORKA SYMFONY
Natalia Stanko Kraków, 2014
O MNIE
• EPI WZKS UJ, IS WFAIS UJ
• web developer
• coach
• organizator Women in Technology w Krakowie
• organizator hack4good hackathon2
AGENDA• jak działają aplikacje internetowe
• czym jest framework
• czym jest Symfony?
• architektura i komponenty Symfony
• cechy Symfony
• aplikacja w 10 minut
• najbardziej użyteczne bundle3
JAK DZIAŁAJĄ APLIKACJE INTERNETOWE
4
CZYM JEST FRAMEWORK?• szkielet do budowy aplikacji
• "don't reinvent the wheel"
• zarządzanie komunikacją z bazą danych
• mechanizmy bezpieczeństwa
• obsługa błędów
• system szablonów (+/-)
• generator kodu (+/-)5
CZYM JEST SYMFONY?
• Fabien Potencier
• SensioLabs
• PHP
• open source
• framework
• zbiór komponentów
6
COMPOSER• getcomposer.org
• packagist.org
!
• dołączanie bibliotek (bundles) third party (i twoich własnych!)
• rozwiązywanie zależności
• przykład: Silex7
–Mikołaj Gogol
“Prawdziwa wielkość ubrana jest w prostotę.”
8
KOMPONENTY
• konfiguracja YAML
• app/console - interfejs linii poleceń
• Doctrine ORM
• migracje db
• formularze
9
KOMPONENTY
• Assetic
• Dependency Injection Container
• EventDispatcher
10
KOMPONENTYAnnotacje ! /** * @Route("/{id}") * @Method("get") * @ParamConverter("post", class="SensioBlogBundle:Post") * @Template("SensioBlogBundle:Annot:show.html.twig") * @Security("has_role('ROLE_ADMIN')") */ public function showAction(Post $post) { }
KOMPONENTY
• debug toolbar
• system tłumaczeń
• ACL db
• PHPUnit, behat itp
• scaffolding, generatory kodu
• mechanizmy stronicowania, sortowania, filtrowania
12
KOMPONENTYTwig - http://twig.sensiolabs.org/
{% extends "layout.html" %}
{{ include('page.html', sandboxed = true) }}
{{ var|raw }}
{% for user in users %}
<li>{{ user.username }}</li>
{% endfor %}13
CECHY SYMFONY• prostota instalacji
• wieloplatformowość
• dla małych i dużych projektów
• zgodność z najlepszymi standardami
• łatwość rozbudowy
• niezależność od systemu bd
• automatyzacja pracy14
SUPPORT• Symfony 2.3 wersja z długoterminowym wsparciem, 3
lata od maja 2013
• Symfony 2.5 ostatnia stabilna wersja
• łatwy upgrade do wyższej wersji
• bardzo dobra dokumentacja
• wsparcie społecznosci15
ZBUDUJ APLIKACJĘ W 10 MINUT
16
NAJBARDZIEJ UŻYTECZNE BUNDLE
• http://symfony.com/blog/the-30-most-useful-symfony-bundles-and-making-them-even-better
• https://packagist.org/
17
NAJBARDZIEJ UŻYTECZNE BUNDLE
• FOSUserBundle
• FOSRestBundle
• Sonata lub Admin Generator
• NelmioApiDocBundle
• MigrationsBundle18
NAJBARDZIEJ UŻYTECZNE BUNDLE
• Translatable
• Timestampable
• Sluggable
• Loggable i Blameable
• Softdeleteable19