TYPO3 Congres 2011 - Rens Admiraal - FLOW3 en TYPO3 PHOENIX

download TYPO3 Congres 2011 - Rens Admiraal - FLOW3 en TYPO3 PHOENIX

of 29

  • date post

    19-May-2015
  • Category

    Documents

  • view

    269
  • download

    1

Embed Size (px)

Transcript of TYPO3 Congres 2011 - Rens Admiraal - FLOW3 en TYPO3 PHOENIX

  • 1. FLOW3 & TYPO3 PhoenixRens Admiraal e-mail: rens.admiraal@typo3.org twitter: @renst3vrijdag 18 november 11

2. Rens AdmiraalFLOW3 / TYPO3 5.0 Phoenix Core DeveloperSenior Software Architect @ DrecommCode stijl / kwaliteit fanaat3 wonder kidsZeiler / Volleyballer / Basgitaristvrijdag 18 november 11 3. FLOW3 ???PHP programmeren op een hoger niveauWeb Application FrameworkPHP 5.3+Gratis!vrijdag 18 november 11 4. TYPO3 Phoenix ???TYPO3 v 5.0Op basis van FLOW3Vernieuwend en baanbrekendVolop in ontwikkelingvrijdag 18 november 11 5. FLOW3Stimuleer kwalitatief hoogwaardige codeFocus op het nodigeDomain Driven Design!Testbaarvrijdag 18 november 11 6. Aint Rocket Science Quickstart Eenvoudige installatieTutorialGemak voorde developer Kickstartis groot command @FLOW3magic FLOW3 Core Team IRC channelvrijdag 18 november 11 7. Rocket ScienceRoutingvrijdag 18 november 11 8. pi_base Flexform Settings function init() {$this->pi_initPIexForm();$this->lConf = array();$this->piFlexform = $this->cObj->data[pi_exform];foreach ($this->piFlexform[data] as $sheet => $data) { foreach ($data as $lang => $value) {foreach ($value as $key => $val) {$this->lConf[$key] = $this->pi_getFFvalue( $this->piFlexform, $key, $sheet);} }} }vrijdag 18 november 11 9. Extbase exform settings public function indexAction() { debug($this->settings); }vrijdag 18 november 11 10. FLOW3 Package Settings YAML Vendor:Package:setting: valuesetting2: value PHP public function indexAction() { TYPO3FLOW3var_dump($this->settings); }vrijdag 18 november 11 11. FLOW3 Package Settings class Test { /*** @var array*/ protected $settings; /*** @param array $settings*/ public function injectSettings(array $settings) { $this->settings = $settings; } public function dump() { TYPO3FLOW3var_dump($this->settings); } }vrijdag 18 november 11 12. Voorbeeld dependency injection use TYPO3FLOW3Annotations as FLOW3; /*** @FLOW3Scope("singleton")*/ class StandardController extends TYPO3FLOW3MVCControllerActionController { /*** @var FLOW3DemoTest* @FLOW3Inject*/ protected $testObject; /*** @return void*/ public function indexAction() { TYPO3FLOW3var_dump($this->testObject); } }vrijdag 18 november 11 13. Voorbeeld validation /*** @var string* @FLOW3Validate(type="NotEmpty")* @FLOW3Validate(type="StringLength", options={ "maximum"=100 })*/ protected $name;vrijdag 18 november 11 14. AOPWikipedia: Aspectgeorinteerd programmeren (AOP, of Aspect Oriented Development, AOD) is een uitbreiding op de bekende manieren van programmeren, waarbij het mogelijk wordt om een stuk code A "in te lassen" in een ander stuk code B zonder dat B een zichtbare verwijzing heeft naar A.Kortom: mogelijkheid gedrag code aan te passen zonder de code zelf aan te passen.vrijdag 18 november 11 15. AOP: AdvicesBefore advice Wordt aangeroepen voor de methode. Heeft geen invloed op het uitvoeren van de methode.After returning advice Wordt aangeroepen na de methode. Return value methode is beschikbaar in advice, maar kan niet aangepast worden. Wordt niet uitgevoerd als er een exceptie optreedt in de methode.After throwing advice Wordt alleen uitgevoerd (na de methode) als er een exceptie in de methode optreedt.vrijdag 18 november 11 16. AOP: AdvicesAfter advice Wordt uitgevoerd na de methode, niet afhankelijk van excepties.Around advice Voert code uit voor en na de methode, en kan voorkomen dat de oorspronkelijke methode aangeroepen wordt.Advice chain Er kunnen meerdere advices ingesteld worden op dezelfde methode. Deze worden dan na elkaar uitgevoerd.vrijdag 18 november 11 17. AOPMethod introductionProperty introductionvrijdag 18 november 11 18. AOP Voorbeeld /*** Log a message if a post is deleted** @param TYPO3FLOW3AOPJoinPointInterface $joinPoint* @FLOW3Before("method(ExamplesForumDomainModelForum->deletePost())")* @return void*/ public function logDeletePost(TYPO3FLOW3AOPJoinPointInterface $joinPoint) { $post = $joinPoint->getMethodArgument(post); $this->applicationLogger->log(Removing post. $post->getTitle(),LOG_INFO ); }vrijdag 18 november 11 19. Voorbeeld Security Framework - security:authentication: providers: MyLDAPProvider:providerClass: TYPO3MyCoolPackageSecurityAuthenticationMyLDAPProvideroptions: Some LDAP conguration options DefaultProvider:providerClass: PersistedUsernamePasswordProvidervrijdag 18 november 11 20. Voorbeeld Security Framework lters:-patternType: URLpatternValue: /some/url/.*interceptor: AccessGrant-patternType: URLpatternValue: /some/url/blocked.*interceptor: AccessDeny-patternType: MyCompanyMyPackageSecurityMyOwnRequestPatternpatternValue: some pattern valueinterceptor: MyCompanyMyPackageSecurityMyOwnSecurityInterceptorvrijdag 18 november 11 21. FLOW3 Released!Versie 1.0 release: 20 oktober 2011API nu stabielKlaar voor gebruik in commercile projectenvrijdag 18 november 11 22. BusinessAl in gebruik in meerdere live projecten Textiel print service in Duitsland, T3CON11, ow3.org, grote duitse retailer, Planet FLOW3, ...., uw site?Kwalitatief betere, onderhoudbare, veilige, uitbreidbare en testbare codeKlaar voor de toekomstvrijdag 18 november 11 23. TYPO3 PhoenixVolop in ontwikkelingIntutiefVernieuwendvrijdag 18 november 11 24. TYPO3 Phoenix begin 2011vrijdag 18 november 11 25. TYPO3 Phoenix nuvrijdag 18 november 11 26. TYPO3 Phoenix Demo Demovrijdag 18 november 11 27. TYPO3 Phoenix in de toekomsthttp://forge.typo3.org/projects/typo3-v51e Release in 2012?vrijdag 18 november 11 28. TYPO3 v4 => TYPO3 PhoenixExtbase & Fluid verlaagde learning curve begin stijl transformatieExtension Buildervrijdag 18 november 11 29. FLOW3 & TYPO3 Phoenix ??? Vragen??? Rens Admiraale-mail: rens.admiraal@typo3.org twitter: @renst3vrijdag 18 november 11