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!

MTM - Flow3

  • 1.
    FLOW3 PHP framework podporujúcipokroč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.batkickstart:package Monogram.Test  StandardController, indexAction  Fluid  Flow3.bat kickstart:actioncontroller Monogram.Test Shop
  • 5.
    Routing  Routes.yaml  Čiastočnepodobné 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  Inversionof 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ťahujesa 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ĺňaobjektové 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  FLOW3kompiluje php súbory  DataTemporary  V skompilovaných súboroch sa rieši dependency injection, lazy loading, aspekty atď
  • 13.
    Blog example  Príkladroutes.xml  Tvorba url v šablóne  Security policy pravidlá – policy.yaml  Validácia formulárov  Chybové hlášky
  • 14.
    Záver  Ďakujem zapozornosť  Čas na otázky a komentáre!