1. FLOW3
PHP framework podporujúci pokročilé koncepty
akými sú dependency injection, aspektovo
orientované programovanie
Ing. Ondrej Hatala
Monogram Technologies
2. Čo nás dnes čaká?
Inštalácia FLOW3
MVC po prvé
Routing
Dependency Injection
Persistence framework
Aspektovo orientované programovanie
Cache skompilovaných súborov
Blog example
5. Routing
Routes.yaml
Čiastočne podobné mod_rewrite
Princíp matchovania patternov
Cesta od browseru k controlleru a
naspäť
Vlastné handlery
uriPattern
◦ Static - test
◦ Dynamic – test/{@action}
◦ Object – defaultne uid, @FLOW3Identity
6. Dependency Injection
Inversion of Control
(http://martinfowler.com/bliki/Inversion
OfControl.html)
Hollywood principle - „Don‘t call us, we
will call you“
Namiesto hlavného programu ktorý
postupne spúšťa podprogramy máme
priamo podprogram ktorý dostane
všetko čo potrebuje
7. Dependency Injection
Vzťahuje sa na parametre
konštruktoru, injectory, settery a
properties objektu
@FLOW3Inject
Autowiring – priame nastavenie /
preťaženie @FLOW3 konfigurácie
objektu, vhodné pri viacerých
implementáciách jedného interface
8. Persistence
Doctrine 2 (http://www.doctrine-
project.org/)
Kickstarter spraví základné triedy
@FLOW3Entity – toto znamená že je
to „ukladateľné“
Model aj Repository vygenerujeme
cez CLI kickstarter
9. Persistence
Pomocou anotácií sa dajú nastaviť
validačné pravidlá
Pomocou ORM anotácií sa dajú
nastaviť DB columns
Skúsime vytvoriť nový produkt
Potrebujeme databázové tabuľky –
bude to problém?
11. Aspektové Programovanie
Dopĺňa objektové programovanie
Umožňuje osamostatnenie
jednotlivých aspektov ktoré zasahujú
do suverenity iných objektov
Typický príklad je napríklad logovanie,
security
@FLOW3Aspect