SlideShare une entreprise Scribd logo
1  sur  14
FLOW3


PHP framework podporujúci pokročilé koncepty
akými sú dependency injection, aspektovo
orientované programovanie




                  Ing. Ondrej Hatala
                  Monogram Technologies
Č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
Inštalácia FLOW3
 git.typo3.org
 Settings.yaml
 flow3.bat
 Štruktúra adresárov
    ◦   Configuration
    ◦   Data
    ◦   Packages
    ◦   Web
Prvý controller
 flow3.bat kickstart:package
  Monogram.Test
 StandardController, indexAction
 Fluid
 Flow3.bat kickstart:actioncontroller
  Monogram.Test Shop
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
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
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
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
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?
Persistence
 flow3.bat doctrine:create
 Teraz už môžeme ukladať aj načítavať
  dáta
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
Cache skompilovaných
súborov
 FLOW3 kompiluje php súbory
 DataTemporary
 V skompilovaných súboroch sa rieši
  dependency injection, lazy loading,
  aspekty atď
Blog example
 Príklad routes.xml
 Tvorba url v šablóne
 Security policy pravidlá – policy.yaml
 Validácia formulárov
 Chybové hlášky
Záver
 Ďakujem za pozornosť
 Čas na otázky a komentáre!

Contenu connexe

Similaire à MTM - Flow3

Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)DCIT, a.s.
 
SecureCam Program Guide
SecureCam Program GuideSecureCam Program Guide
SecureCam Program Guideguest146c167
 
Bezpečnosť v kontexte RIA technológií
Bezpečnosť v kontexte RIA technológiíBezpečnosť v kontexte RIA technológií
Bezpečnosť v kontexte RIA technológiíJuraj Michálek
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMichal Chabada
 
Hudson CI, Maven, FlexMojos
Hudson CI, Maven, FlexMojosHudson CI, Maven, FlexMojos
Hudson CI, Maven, FlexMojosJuraj Michálek
 
Ať se z kódu nepráší!
Ať se z kódu nepráší!Ať se z kódu nepráší!
Ať se z kódu nepráší!Juraj Michálek
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebJuraj Michálek
 

Similaire à MTM - Flow3 (10)

Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)
 
SecureCam Program Guide
SecureCam Program GuideSecureCam Program Guide
SecureCam Program Guide
 
Tastypie
TastypieTastypie
Tastypie
 
Bezpečnosť v kontexte RIA technológií
Bezpečnosť v kontexte RIA technológiíBezpečnosť v kontexte RIA technológií
Bezpečnosť v kontexte RIA technológií
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
 
Hudson CI, Maven, FlexMojos
Hudson CI, Maven, FlexMojosHudson CI, Maven, FlexMojos
Hudson CI, Maven, FlexMojos
 
Ať se z kódu nepráší!
Ať se z kódu nepráší!Ať se z kódu nepráší!
Ať se z kódu nepráší!
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na Web
 

Dernier

Vladimír Burjan: Ako hodnotiť žiakov so ŠVVP
Vladimír Burjan: Ako hodnotiť žiakov so ŠVVPVladimír Burjan: Ako hodnotiť žiakov so ŠVVP
Vladimír Burjan: Ako hodnotiť žiakov so ŠVVPIndicia
 
Viktor Križo: Podporné opatrenia - otázky a výzvy
Viktor Križo: Podporné opatrenia - otázky a výzvyViktor Križo: Podporné opatrenia - otázky a výzvy
Viktor Križo: Podporné opatrenia - otázky a výzvyIndicia
 
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!Indicia
 
Vladimír Burjan: Ako hodnotiť nadaných žiakov
Vladimír Burjan: Ako hodnotiť nadaných žiakovVladimír Burjan: Ako hodnotiť nadaných žiakov
Vladimír Burjan: Ako hodnotiť nadaných žiakovIndicia
 
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...Indicia
 
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...Indicia
 

Dernier (6)

Vladimír Burjan: Ako hodnotiť žiakov so ŠVVP
Vladimír Burjan: Ako hodnotiť žiakov so ŠVVPVladimír Burjan: Ako hodnotiť žiakov so ŠVVP
Vladimír Burjan: Ako hodnotiť žiakov so ŠVVP
 
Viktor Križo: Podporné opatrenia - otázky a výzvy
Viktor Križo: Podporné opatrenia - otázky a výzvyViktor Križo: Podporné opatrenia - otázky a výzvy
Viktor Križo: Podporné opatrenia - otázky a výzvy
 
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!
Zuzana Krnáčová, Miloš Kmeť: Obloha ani voda nie sú modré!
 
Vladimír Burjan: Ako hodnotiť nadaných žiakov
Vladimír Burjan: Ako hodnotiť nadaných žiakovVladimír Burjan: Ako hodnotiť nadaných žiakov
Vladimír Burjan: Ako hodnotiť nadaných žiakov
 
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...
Alexandra Ostertágová, Michal Rehúš: Čo hovoria údaje o situácii učiteliek a ...
 
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...
Martina Bobulová, Adriana Macková: Predchádzanie konfliktom a riešenie konfli...
 

MTM - Flow3

  • 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
  • 3. Inštalácia FLOW3  git.typo3.org  Settings.yaml  flow3.bat  Štruktúra adresárov ◦ Configuration ◦ Data ◦ Packages ◦ Web
  • 4. Prvý controller  flow3.bat kickstart:package Monogram.Test  StandardController, indexAction  Fluid  Flow3.bat kickstart:actioncontroller Monogram.Test Shop
  • 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?
  • 10. Persistence  flow3.bat doctrine:create  Teraz už môžeme ukladať aj načítavať dáta
  • 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
  • 12. Cache skompilovaných súborov  FLOW3 kompiluje php súbory  DataTemporary  V skompilovaných súboroch sa rieši dependency injection, lazy loading, aspekty atď
  • 13. Blog example  Príklad routes.xml  Tvorba url v šablóne  Security policy pravidlá – policy.yaml  Validácia formulárov  Chybové hlášky
  • 14. Záver  Ďakujem za pozornosť  Čas na otázky a komentáre!