17
T3CON10, Dallas (Texas) Fluent Development with FLOW3

Fluent Development with FLOW3

Embed Size (px)

DESCRIPTION

Accompanying slides to the half-day tutorial at T3CON10 Dallas. Most of the session consisted of code demonstration and development.Here’s the link to the Conference App example used throughout the tutorial:https://svn.typo3.org/FLOW3/Applications/Conference/trunk/

Citation preview

Page 1: Fluent Development with FLOW3

T3CON10 Dallas (Texas)

Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

The FLOW3 experienceFlow [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 Mihaacutely Csiacutekszentmihaacutelyi 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ːji]

Inspiring people toshareFluent Development with FLOW3

FLOW3 = Application FrameworkNot just a collection of components or code snippet library

Comes with ready-to-go default configuration

Package based

Tailored to Domain-Driven Design

Inspiring people toshareFluent Development with FLOW3

Get the FLOW experienceIntuitive 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

Inspiring people toshareFluent Development with FLOW3

TYPO3 and FLOW3FLOW3 acts as a reliable basis for any kind of web application

TYPO3 Phoenix 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

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 2: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

The FLOW3 experienceFlow [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 Mihaacutely Csiacutekszentmihaacutelyi 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ːji]

Inspiring people toshareFluent Development with FLOW3

FLOW3 = Application FrameworkNot just a collection of components or code snippet library

Comes with ready-to-go default configuration

Package based

Tailored to Domain-Driven Design

Inspiring people toshareFluent Development with FLOW3

Get the FLOW experienceIntuitive 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

Inspiring people toshareFluent Development with FLOW3

TYPO3 and FLOW3FLOW3 acts as a reliable basis for any kind of web application

TYPO3 Phoenix 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

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 3: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

FLOW3 = Application FrameworkNot just a collection of components or code snippet library

Comes with ready-to-go default configuration

Package based

Tailored to Domain-Driven Design

Inspiring people toshareFluent Development with FLOW3

Get the FLOW experienceIntuitive 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

Inspiring people toshareFluent Development with FLOW3

TYPO3 and FLOW3FLOW3 acts as a reliable basis for any kind of web application

TYPO3 Phoenix 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

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 4: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Get the FLOW experienceIntuitive 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

Inspiring people toshareFluent Development with FLOW3

TYPO3 and FLOW3FLOW3 acts as a reliable basis for any kind of web application

TYPO3 Phoenix 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

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 5: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

TYPO3 and FLOW3FLOW3 acts as a reliable basis for any kind of web application

TYPO3 Phoenix 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

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 6: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Model - View - Controller

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 7: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Modelan object which contains data and business logic of a certain domain

doesnt 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

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 8: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Viewrepresents the display of the model on the web or another output channel

views only display data they dont build or modify it

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 9: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

The MVC Pattern

Controllerreacts on user input selects and manipulates the model as accordingly

selects a view and passes it the prepared model for rendering

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 10: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Action ControllerAn action controller

accepts a request

evaluates arguments

calls the action defined in the request

and adds output to the response

MVC

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 11: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Routing

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 12: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Things to play with

BlogTry out the Blog Examplesvn co httpssvntypo3orgFLOW3ApplicationtrunkBlogExample

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 13: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Things to play with

Conferencehttpssvntypo3orgFLOW3ApplicationsConferencetrunk

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 14: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

LinksFLOW3 Websitehttpflow3typo3org

TYPO3 Forgehttpforgetypo3org

Coding Guidelineshttpflow3typo3orgdocumentationcoding-guidelines

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 15: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Further Readinghttpflow3typo3orgaboutprinciplesfurther-reading

Follow meTwitter t3robhttprobertlemkedeblog

Inspiring people toshareFluent Development with FLOW3

Questions

Page 16: Fluent Development with FLOW3

Inspiring people toshareFluent Development with FLOW3

Questions

Page 17: Fluent Development with FLOW3