SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
Hitchhiker's Guide to FLOW3
                  T3DD09, Elmshorn, Germany




Mittwoch, 20. Mai 2009
The History of FLOW3
                               (short version)




Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009
1998
Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009
                         33
500.000
Mittwoch, 20. Mai 2009
300.000
Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009
The FLOW3 experience
                     Flow [fl!] The mental state of operation in which the person is fully immersed in
                     what he or she is doing by a feeling of energized focus, full involvement, and
                     success in the process of the activity. Proposed by positive psychologist Mihály
                     Csíkszentmihályi , the concept has been widely referenced across a variety of
                     fields.

                     FLOW3 [fl!'three] The application framework which takes care of all hassle and lets
                     you play the fun part.




                Hitchhiker's Guide to FLOW3                                            Inspiring people to
                                                                                       share
Mittwoch, 20. Mai 2009
The FLOW3 experience
                     Flow [fl!] The mental state of operation in which the person is fully immersed in
                     what he or she is doing by a feeling of energized focus, full involvement, and
                     success in the process of the activity. Proposed by positive psychologist Mihály
                     Csíkszentmihályi , the concept has been widely referenced across a variety of
                     fields.

                     FLOW3 [fl!'three] The application framework which takes care of all hassle and lets
                     you play the fun part.

                         ["miha#j t$i#
                                      k"s%ntmiha#j
                                                    i]

                Hitchhiker's Guide to FLOW3                                            Inspiring people to
                                                                                       share
Mittwoch, 20. Mai 2009
FLOW3 = Application Framework
                         Not just a collection of components or code snippet library

                         Comes with ready-to-go default configuration

                         Package based

                         Tailored to Domain-Driven Design




                Hitchhiker's Guide to FLOW3                                            Inspiring people to
                                                                                       share
Mittwoch, 20. Mai 2009
Get the FLOW experience
                         Intuitive APIs

                         Readable source code (like a book)

                         Consistent naming for classes, methods and properties


                         Focus on the essential, the framework takes care of the infrastructure




                Hitchhiker's Guide to FLOW3                                            Inspiring people to
                                                                                       share
Mittwoch, 20. Mai 2009
TYPO3 and FLOW3
                         FLOW3 acts as a reliable basis for any kind of web application

                         TYPO3 v5 is a package based on FLOW3

                         TYPO3 extensions are packages as well, all based on FLOW3


                         Packages can be used

                           as extensions for TYPO3

                           as libraries for standalone applications


                Hitchhiker's Guide to FLOW3                                               Inspiring people to
                                                                                          share
Mittwoch, 20. Mai 2009
FLOW3 sub packages
                         AOP              Log           Reflection

                         Component        Monitor       Resource

                         Configuration     MVC           Session

                         Cache            Object        SignalSlot

                         Error            Package       Validation

                         Locale           Persistence   ... and more



                Hitchhiker's Guide to FLOW3                   Inspiring people to
                                                              share
Mittwoch, 20. Mai 2009
Getting Started




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Getting Started


                 Requirements
                         Some webserver (tested with Apache and IIS)

                         PHP 5.3RC1 or higher (see http://snaps.php.net/)

                           PHP extensions: zlib, PDO and PDO SQLite and the usual stuff

                         Some database (tested with SQLite, MySQL and Postgres)




                Hitchhiker's Guide to FLOW3                                           Inspiring people to
                                                                                      share
Mittwoch, 20. Mai 2009
Getting Started


                 Download
                         Currently available through Subversion

                           Checkout the FLOW3 Distribution:
                           svn co https://svn.typo3.org/FLOW3/distribution/trunk

                           or try the TYPO3 Distribution:
                           svn co https://svn.typo3.org/TYPO3v5/distribution/trunk

                         Nightly builds will follow as soon

                         FLOW3 1.0 alpha 1 release on June 1st




                Hitchhiker's Guide to FLOW3                                        Inspiring people to
                                                                                   share
Mittwoch, 20. Mai 2009
Getting Started


                 Grant File Permissions
                         The webserver needs

                           read access for all files of the distribution and

                           write access in the Public and Data directory

                         On Linux / Mac just call sudo ./fixpermissions.sh

                         On legacy operating systems: ask your system administrator




                Hitchhiker's Guide to FLOW3                                           Inspiring people to
                                                                                      share
Mittwoch, 20. Mai 2009
Model - View - Controller




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
The MVC Pattern


                 Model
                         an object which contains data and business logic of a
                         certain domain

                         doesn't contain any information about the presentation of
                         that data, but rather defines the behaviour

                         in the FLOW3 project we prefer a special kind of model,
                         the Domain Model




                Hitchhiker's Guide to FLOW3                                          Inspiring people to
                                                                                     share
Mittwoch, 20. Mai 2009
The MVC Pattern


                 View
                         represents the display of the model on the web or another
                         output channel

                         views only display data, they don't build or modify it




                Hitchhiker's Guide to FLOW3                                          Inspiring people to
                                                                                     share
Mittwoch, 20. Mai 2009
The MVC Pattern


                 Controller
                         reacts on user input, selects and manipulates the model as
                         accordingly

                         selects a view and passes it the prepared model for
                         rendering




                Hitchhiker's Guide to FLOW3                                           Inspiring people to
                                                                                      share
Mittwoch, 20. Mai 2009
MVC


                 Action Controller
                         An action controller

                           accepts a request

                           evaluates arguments

                           calls the action defined in the request

                           and adds output to the response




                Hitchhiker's Guide to FLOW3                         Inspiring people to
                                                                    share
Mittwoch, 20. Mai 2009
MVC


                 Action Controller: Important Methods
                         Actions - methods just need an "Action" suffix:
                         public function indexAction() { … }
                         public function deleteAction() { … }

                         Initialization for the whole controller:
                         public function initializeController() { … }

                         Initialization before any action is called:
                         public function initializeAction() { … }
                         public function initializeXYAction() { … }




                Hitchhiker's Guide to FLOW3                               Inspiring people to
                                                                          share
Mittwoch, 20. Mai 2009
MVC


                 Action Arguments
                         Arguments are defined by declaring them in the action method

                         Argument data types are defined by type hint and documentation
                         /**
                          * Action that displays one single post
                          *
                          * @param F3BlogDomainModelPost $post The post to display
                          * @return void
                          * @author Robert Lemke <robert@typo3.org>
                          */
                         public function showAction(F3BlogDomainModelPost $post) {




                Hitchhiker's Guide to FLOW3                                               Inspiring people to
                                                                                          share
Mittwoch, 20. Mai 2009
DEMO

                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009
Validation




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Validating Arguments
                         All arguments passed to an Action Controller are automatically validated

                         White List policy: Only registered arguments are available

                         Accessing the $_GET and $_POST super globals is dangerous, dirty, deprecated
                         and will probably be intercepted in the future




                Hitchhiker's Guide to FLOW3                                           Inspiring people to
                                                                                      share
Mittwoch, 20. Mai 2009
Validating Arguments
                         FLOW3 comes with a bunch of built in validators:

                           AlphaNumeric, EmailAddress, Float, Integer, NotEmpty, Number,
                           NumberRange, RegularExpression, UUID, Text

                         Custom validators can be created (especially for Domain Models)

                         All validators can be chained (and nested)




                Hitchhiker's Guide to FLOW3                                          Inspiring people to
                                                                                     share
Mittwoch, 20. Mai 2009
Validation Rules Definition
                             All validation rules are defined by annotations in place

                             Additional rules may be defined programmatically
                         class Blog {

                             /**
                              * The blog's name. Also acts as the identifier.
                              *
                              * @var string
                              * @validate Alphanumeric, Length(minimum = 3, maximum = 50)
                              * @identity
                              */
                             protected $name = '';

                             /**
                              * A short description of the blog
                              *
                              * @var string
                              * @validate Text, Length(maximum = 150)

                Hitchhiker's Guide to FLOW3
                              */                                                            Inspiring people to
                             protected $description = '';
                                                                                            share
Mittwoch, 20. Mai 2009
Validation Rules Definition


                         /**
                           * Create action for this controller.
                           *
                           * @param string $emailAddress
                           * @return string The rendered view
                           * @author Robert Lemke <robert@typo3.org>
                           * @validate $emailAddress EmailAddress
                           */
                         public function createAction($emailAddress) {
                         }




                Hitchhiker's Guide to FLOW3                              Inspiring people to
                                                                         share
Mittwoch, 20. Mai 2009
DEMO

                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Security




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Routing




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Caching




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Progress

                             Developing TYPO3 5.0 ...




                Development with FLOW3                  Inspiring people to
                                                        share
Mittwoch, 20. Mai 2009
DEMO

                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Playground




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Things to play with


                 F3BLOG
                         Try out the Blog Example:
                         svn co https://svn.typo3.org/FLOW3/Distribution/branches/BlogExample/




                Hitchhiker's Guide to FLOW3                                Inspiring people to
                                                                           share
Mittwoch, 20. Mai 2009
Things to play with


                 TYPO3CR Admin
                         Play with persistence and watch your object in the TYPO3CR Admin




                Hitchhiker's Guide to FLOW3                                          Inspiring people to
                                                                                    share
Mittwoch, 20. Mai 2009
Things to play with


                 Testrunner
                         Experiment with Test-Driven Development and watch the tests in
                         FLOW3's test runner




                Hitchhiker's Guide to FLOW3                                         Inspiring people to
                                                                                    share
Mittwoch, 20. Mai 2009
Links
                         FLOW3 Website
                         http://flow3.typo3.org

                         TYPO3 Forge
                         http://forge.typo3.org

                         Coding Guidelines
                         http://flow3.typo3.org/documentation/coding-guidelines/

                         Further Reading
                         http://flow3.typo3.org/about/principles/further-reading/



                Hitchhiker's Guide to FLOW3                                        Inspiring people to
                                                                                   share
Mittwoch, 20. Mai 2009
Further Reading
                 http://flow3.typo3.org/about/principles/further-reading/

                 Beat
                 http://beat.typo3.org




                Hitchhiker's Guide to FLOW3                   Inspiring people to
                                                              share
Mittwoch, 20. Mai 2009
Questions




                Hitchhiker's Guide to FLOW3   Inspiring people to
                                              share
Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009
Mittwoch, 20. Mai 2009

Mais conteúdo relacionado

Mais de Robert Lemke

Neos Content Repository – Git for content
Neos Content Repository – Git for contentNeos Content Repository – Git for content
Neos Content Repository – Git for contentRobert Lemke
 
A General Purpose Docker Image for PHP
A General Purpose Docker Image for PHPA General Purpose Docker Image for PHP
A General Purpose Docker Image for PHPRobert Lemke
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesRobert Lemke
 
Flownative Beach - Neos Meetup Hamburg 2022
Flownative Beach - Neos Meetup Hamburg 2022Flownative Beach - Neos Meetup Hamburg 2022
Flownative Beach - Neos Meetup Hamburg 2022Robert Lemke
 
GitOps with Flux - IPC Munich 2022
GitOps with Flux - IPC Munich 2022GitOps with Flux - IPC Munich 2022
GitOps with Flux - IPC Munich 2022Robert Lemke
 
OpenID Connect with Neos and Flow
OpenID Connect with Neos and FlowOpenID Connect with Neos and Flow
OpenID Connect with Neos and FlowRobert Lemke
 
Neos Conference 2019 Keynote
Neos Conference 2019 KeynoteNeos Conference 2019 Keynote
Neos Conference 2019 KeynoteRobert Lemke
 
A practical introduction to Kubernetes (IPC 2018)
A practical introduction to Kubernetes (IPC 2018)A practical introduction to Kubernetes (IPC 2018)
A practical introduction to Kubernetes (IPC 2018)Robert Lemke
 
Neos Conference 2018 Welcome Keynote
Neos Conference 2018 Welcome KeynoteNeos Conference 2018 Welcome Keynote
Neos Conference 2018 Welcome KeynoteRobert Lemke
 
A practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSA practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSRobert Lemke
 
Neos Conference 2017 Welcome Keynote
Neos Conference 2017 Welcome KeynoteNeos Conference 2017 Welcome Keynote
Neos Conference 2017 Welcome KeynoteRobert Lemke
 
IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes Robert Lemke
 
IPC 2016: Content Strategy for Developers
IPC 2016: Content Strategy for DevelopersIPC 2016: Content Strategy for Developers
IPC 2016: Content Strategy for DevelopersRobert Lemke
 
Docker in Production - IPC 2016
Docker in Production - IPC 2016Docker in Production - IPC 2016
Docker in Production - IPC 2016Robert Lemke
 
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)Robert Lemke
 
The Neos Brand (Inspiring Conference 2016)
The Neos Brand (Inspiring Conference 2016)The Neos Brand (Inspiring Conference 2016)
The Neos Brand (Inspiring Conference 2016)Robert Lemke
 
Neos - past, present, future (Inspiring Conference 2016)
Neos - past, present, future (Inspiring Conference 2016)Neos - past, present, future (Inspiring Conference 2016)
Neos - past, present, future (Inspiring Conference 2016)Robert Lemke
 
Meet Neos Nürnberg 2016: Ja ich will!
Meet Neos Nürnberg 2016: Ja ich will!Meet Neos Nürnberg 2016: Ja ich will!
Meet Neos Nürnberg 2016: Ja ich will!Robert Lemke
 
Meet Neos Nürnberg 2016: Hallo Neos!
Meet Neos Nürnberg 2016: Hallo Neos!Meet Neos Nürnberg 2016: Hallo Neos!
Meet Neos Nürnberg 2016: Hallo Neos!Robert Lemke
 
Turning Neos inside out / React.js HH
Turning Neos inside out / React.js HHTurning Neos inside out / React.js HH
Turning Neos inside out / React.js HHRobert Lemke
 

Mais de Robert Lemke (20)

Neos Content Repository – Git for content
Neos Content Repository – Git for contentNeos Content Repository – Git for content
Neos Content Repository – Git for content
 
A General Purpose Docker Image for PHP
A General Purpose Docker Image for PHPA General Purpose Docker Image for PHP
A General Purpose Docker Image for PHP
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
 
Flownative Beach - Neos Meetup Hamburg 2022
Flownative Beach - Neos Meetup Hamburg 2022Flownative Beach - Neos Meetup Hamburg 2022
Flownative Beach - Neos Meetup Hamburg 2022
 
GitOps with Flux - IPC Munich 2022
GitOps with Flux - IPC Munich 2022GitOps with Flux - IPC Munich 2022
GitOps with Flux - IPC Munich 2022
 
OpenID Connect with Neos and Flow
OpenID Connect with Neos and FlowOpenID Connect with Neos and Flow
OpenID Connect with Neos and Flow
 
Neos Conference 2019 Keynote
Neos Conference 2019 KeynoteNeos Conference 2019 Keynote
Neos Conference 2019 Keynote
 
A practical introduction to Kubernetes (IPC 2018)
A practical introduction to Kubernetes (IPC 2018)A practical introduction to Kubernetes (IPC 2018)
A practical introduction to Kubernetes (IPC 2018)
 
Neos Conference 2018 Welcome Keynote
Neos Conference 2018 Welcome KeynoteNeos Conference 2018 Welcome Keynote
Neos Conference 2018 Welcome Keynote
 
A practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRSA practical introduction to Event Sourcing and CQRS
A practical introduction to Event Sourcing and CQRS
 
Neos Conference 2017 Welcome Keynote
Neos Conference 2017 Welcome KeynoteNeos Conference 2017 Welcome Keynote
Neos Conference 2017 Welcome Keynote
 
IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes
 
IPC 2016: Content Strategy for Developers
IPC 2016: Content Strategy for DevelopersIPC 2016: Content Strategy for Developers
IPC 2016: Content Strategy for Developers
 
Docker in Production - IPC 2016
Docker in Production - IPC 2016Docker in Production - IPC 2016
Docker in Production - IPC 2016
 
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
Is this Open Source Thing Really Worth it? (IPC 2016 Berlin)
 
The Neos Brand (Inspiring Conference 2016)
The Neos Brand (Inspiring Conference 2016)The Neos Brand (Inspiring Conference 2016)
The Neos Brand (Inspiring Conference 2016)
 
Neos - past, present, future (Inspiring Conference 2016)
Neos - past, present, future (Inspiring Conference 2016)Neos - past, present, future (Inspiring Conference 2016)
Neos - past, present, future (Inspiring Conference 2016)
 
Meet Neos Nürnberg 2016: Ja ich will!
Meet Neos Nürnberg 2016: Ja ich will!Meet Neos Nürnberg 2016: Ja ich will!
Meet Neos Nürnberg 2016: Ja ich will!
 
Meet Neos Nürnberg 2016: Hallo Neos!
Meet Neos Nürnberg 2016: Hallo Neos!Meet Neos Nürnberg 2016: Hallo Neos!
Meet Neos Nürnberg 2016: Hallo Neos!
 
Turning Neos inside out / React.js HH
Turning Neos inside out / React.js HHTurning Neos inside out / React.js HH
Turning Neos inside out / React.js HH
 

T3DD09: Hitchhiker&rsquo;s Guide to FLOW3

  • 1. Hitchhiker's Guide to FLOW3 T3DD09, Elmshorn, Germany Mittwoch, 20. Mai 2009
  • 2. The History of FLOW3 (short version) Mittwoch, 20. Mai 2009
  • 9. The FLOW3 experience Flow [fl!] The mental state of operation in which the person is fully immersed in what he or she is doing by a feeling of energized focus, full involvement, and success in the process of the activity. Proposed by positive psychologist Mihály Csíkszentmihályi , the concept has been widely referenced across a variety of fields. FLOW3 [fl!'three] The application framework which takes care of all hassle and lets you play the fun part. Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 10. The FLOW3 experience Flow [fl!] The mental state of operation in which the person is fully immersed in what he or she is doing by a feeling of energized focus, full involvement, and success in the process of the activity. Proposed by positive psychologist Mihály Csíkszentmihályi , the concept has been widely referenced across a variety of fields. FLOW3 [fl!'three] The application framework which takes care of all hassle and lets you play the fun part. ["miha#j t$i# k"s%ntmiha#j i] Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 11. FLOW3 = Application Framework Not just a collection of components or code snippet library Comes with ready-to-go default configuration Package based Tailored to Domain-Driven Design Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 12. Get the FLOW experience Intuitive APIs Readable source code (like a book) Consistent naming for classes, methods and properties Focus on the essential, the framework takes care of the infrastructure Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 13. TYPO3 and FLOW3 FLOW3 acts as a reliable basis for any kind of web application TYPO3 v5 is a package based on FLOW3 TYPO3 extensions are packages as well, all based on FLOW3 Packages can be used as extensions for TYPO3 as libraries for standalone applications Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 14. FLOW3 sub packages AOP Log Reflection Component Monitor Resource Configuration MVC Session Cache Object SignalSlot Error Package Validation Locale Persistence ... and more Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 15. Getting Started Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 16. Getting Started Requirements Some webserver (tested with Apache and IIS) PHP 5.3RC1 or higher (see http://snaps.php.net/) PHP extensions: zlib, PDO and PDO SQLite and the usual stuff Some database (tested with SQLite, MySQL and Postgres) Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 17. Getting Started Download Currently available through Subversion Checkout the FLOW3 Distribution: svn co https://svn.typo3.org/FLOW3/distribution/trunk or try the TYPO3 Distribution: svn co https://svn.typo3.org/TYPO3v5/distribution/trunk Nightly builds will follow as soon FLOW3 1.0 alpha 1 release on June 1st Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 18. Getting Started Grant File Permissions The webserver needs read access for all files of the distribution and write access in the Public and Data directory On Linux / Mac just call sudo ./fixpermissions.sh On legacy operating systems: ask your system administrator Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 19. Model - View - Controller Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 20. The MVC Pattern Model an object which contains data and business logic of a certain domain doesn't contain any information about the presentation of that data, but rather defines the behaviour in the FLOW3 project we prefer a special kind of model, the Domain Model Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 21. The MVC Pattern View represents the display of the model on the web or another output channel views only display data, they don't build or modify it Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 22. The MVC Pattern Controller reacts on user input, selects and manipulates the model as accordingly selects a view and passes it the prepared model for rendering Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 23. MVC Action Controller An action controller accepts a request evaluates arguments calls the action defined in the request and adds output to the response Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 24. MVC Action Controller: Important Methods Actions - methods just need an "Action" suffix: public function indexAction() { … } public function deleteAction() { … } Initialization for the whole controller: public function initializeController() { … } Initialization before any action is called: public function initializeAction() { … } public function initializeXYAction() { … } Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 25. MVC Action Arguments Arguments are defined by declaring them in the action method Argument data types are defined by type hint and documentation /** * Action that displays one single post * * @param F3BlogDomainModelPost $post The post to display * @return void * @author Robert Lemke <robert@typo3.org> */ public function showAction(F3BlogDomainModelPost $post) { Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 26. DEMO Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 28. Validation Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 29. Validating Arguments All arguments passed to an Action Controller are automatically validated White List policy: Only registered arguments are available Accessing the $_GET and $_POST super globals is dangerous, dirty, deprecated and will probably be intercepted in the future Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 30. Validating Arguments FLOW3 comes with a bunch of built in validators: AlphaNumeric, EmailAddress, Float, Integer, NotEmpty, Number, NumberRange, RegularExpression, UUID, Text Custom validators can be created (especially for Domain Models) All validators can be chained (and nested) Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 31. Validation Rules Definition All validation rules are defined by annotations in place Additional rules may be defined programmatically class Blog { /** * The blog's name. Also acts as the identifier. * * @var string * @validate Alphanumeric, Length(minimum = 3, maximum = 50) * @identity */ protected $name = ''; /** * A short description of the blog * * @var string * @validate Text, Length(maximum = 150) Hitchhiker's Guide to FLOW3 */ Inspiring people to protected $description = ''; share Mittwoch, 20. Mai 2009
  • 32. Validation Rules Definition /** * Create action for this controller. * * @param string $emailAddress * @return string The rendered view * @author Robert Lemke <robert@typo3.org> * @validate $emailAddress EmailAddress */ public function createAction($emailAddress) { } Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 33. DEMO Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 34. Security Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 35. Routing Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 36. Caching Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 37. Progress Developing TYPO3 5.0 ... Development with FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 38. DEMO Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 39. Playground Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 40. Things to play with F3BLOG Try out the Blog Example: svn co https://svn.typo3.org/FLOW3/Distribution/branches/BlogExample/ Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 41. Things to play with TYPO3CR Admin Play with persistence and watch your object in the TYPO3CR Admin Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 42. Things to play with Testrunner Experiment with Test-Driven Development and watch the tests in FLOW3's test runner Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 43. Links FLOW3 Website http://flow3.typo3.org TYPO3 Forge http://forge.typo3.org Coding Guidelines http://flow3.typo3.org/documentation/coding-guidelines/ Further Reading http://flow3.typo3.org/about/principles/further-reading/ Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 44. Further Reading http://flow3.typo3.org/about/principles/further-reading/ Beat http://beat.typo3.org Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009
  • 45. Questions Hitchhiker's Guide to FLOW3 Inspiring people to share Mittwoch, 20. Mai 2009