PHP Framework For Developer HappinessTYPO3 FlowDienstag, 28. Mai 13
Not Safe ForCode AllergicDienstag, 28. Mai 13
...but probablyunderstandableDienstag, 28. Mai 13
PHP ApplicationFrameworkDienstag, 28. Mai 13
PHP ApplicationFrameworkWebDienstag, 28. Mai 13
Flow is an optimal state in whichyou feel totally engaged in anactivity.Mihaly CsikszentmihalyiDienstag, 28. Mai 13
Main Concerns‣ Developer Happiness‣ Code Quality‣ Domain Driven Design‣ Convention Over ConfigurationDienstag, 28. Mai 13
LaravelZendFrameworkCodeIgniterSymfony2Dienstag, 28. Mai 13
Why anotherframework?Dienstag, 28. Mai 13
How it beganDienstag, 28. Mai 13
How it began‣ 2005 - Rewrite TYPO3 CMS CoreDienstag, 28. Mai 13
How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everythingDienstag, 28. Mai 13
How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everything‣ ... continuous tea...
How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everything‣ ... continuous tea...
PHP Good PointsDienstag, 28. Mai 13
Most Used WebLanguageDienstag, 28. Mai 13
Easy To LearnDienstag, 28. Mai 13
Available On ManyServersDienstag, 28. Mai 13
PHP DrawbacksDienstag, 28. Mai 13
Bad ReputationMany “spaghetti code” projectsDienstag, 28. Mai 13
Considered UglyDienstag, 28. Mai 13
Language FeaturesDienstag, 28. Mai 13
Dienstag, 28. Mai 13
Patterns &PhilosophyDienstag, 28. Mai 13
We are biased!Dienstag, 28. Mai 13
Domain DrivenDesignas explained by Eric EvansDienstag, 28. Mai 13
DDD in a nutshellDienstag, 28. Mai 13
DDD in a nutshell‣ DomainDienstag, 28. Mai 13
DDD in a nutshell‣ Domain‣ Ubiquitous LanguageDienstag, 28. Mai 13
DDD in a nutshell‣ Domain‣ Ubiquitous Language‣ ModelDienstag, 28. Mai 13
DDD in a nutshell‣ Domain‣ Ubiquitous Language‣ Model‣ Aggregate Root and RepositoriesDienstag, 28. Mai 13
(Web) MVCModel-View-ControllerDienstag, 28. Mai 13
ModelControllerView(HTTP) Request(HTTP) ResponseDienstag, 28. Mai 13
Convention OverConfigurationDienstag, 28. Mai 13
Typical file structureVendor.PackageNameClasses...ControllerDomainModelRepositoryConfigurationDocumentationMigrationsResou...
DependencyInjectionDienstag, 28. Mai 13
DI made simpleclass ActionController extends AbstractController {/*** @FlowInject* @var TYPO3FlowObjectObjectManagerInterf...
Signal / SlotAlso called Observer PatternDienstag, 28. Mai 13
Emit / ConnectDienstag, 28. Mai 13
Aspect OrientedProgrammingDienstag, 28. Mai 13
Separation Of ConcernsDienstag, 28. Mai 13
Proxy ClassesDienstag, 28. Mai 13
Making PHPCode BeautifulDienstag, 28. Mai 13
Property MappingDienstag, 28. Mai 13
Get useful arguments/*** Action for creating a temporary account** @param TYPO3TestDomainModelRegistration $reg* @return v...
DoctrineDienstag, 28. Mai 13
ORMObject Relational MappingDienstag, 28. Mai 13
Database AbstractionDienstag, 28. Mai 13
MigrationsDienstag, 28. Mai 13
SecurityDienstag, 28. Mai 13
AuthenticationWho are you?Dienstag, 28. Mai 13
AuthorizationWhat are you allowed to do?Dienstag, 28. Mai 13
Content SecurityQuery RewritingDienstag, 28. Mai 13
Touchless Securityresources:methods:BackendController: ↵method(FullNameSpaceBackendController->.*Action())AdminController:...
Application FirewallStop RequestsDienstag, 28. Mai 13
Command LineDienstag, 28. Mai 13
Framework commandsDienstag, 28. Mai 13
Add your own commandsDienstag, 28. Mai 13
FluidDienstag, 28. Mai 13
XML ConformTemplatesDienstag, 28. Mai 13
Basic stringspublic function simpleAction() {$name = ‘Christian’;$this->view->assign(‘name’, $name);}Dienstag, 28. Mai 13
Basic strings<html><head></head><body><p>Hello World, I am {name}!</p></body></html>Dienstag, 28. Mai 13
Objectspublic function simpleAction() {$accounts = $this->accountRepository->findAll();$this->view->assign(‘accounts’, $ac...
Objects / Iteration<html><head></head><body><ul><f:for each=”{accounts}” as=”account”><li>{account.identifier}</li></f:for...
SessionsDienstag, 28. Mai 13
Session Scope/**** @FlowScope("session")*/class Basket {/**** @var array*/protected $items;/*** @return array*/public func...
Using the Session Objectclass MyController {/**** @FlowInject* @var TYPO3FlowSessionSessionInterface*/protected $sessionpu...
Dienstag, 28. Mai 13
StandardsDienstag, 28. Mai 13
PHP-FIGFramework Interoperability GroupDienstag, 28. Mai 13
PSR-0AutoloadingDienstag, 28. Mai 13
PSR-1Coding StandardsDienstag, 28. Mai 13
ComposerDienstag, 28. Mai 13
Test DrivenDevelopmentDienstag, 28. Mai 13
More To DiscoverDienstag, 28. Mai 13
No time in this talk had...‣ Internationalization‣ Caching‣ Resource Handling‣ Validation‣ Routing‣ ...Dienstag, 28. Mai 13
Existing ProjectsDienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
And a lot more...Dienstag, 28. Mai 13
@daskitsunet‣ like Books, Music, Tea and more‣ Flow and Neos Community Contact‣ Freelance Trainer / Developer‣ plays the p...
Thank you!Dienstag, 28. Mai 13
Upcoming SlideShare
Loading in...5
×

TYPO3 Flow - PHP Framework for Developer Happiness

3,962

Published on

Published in: Sports
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,962
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "TYPO3 Flow - PHP Framework for Developer Happiness"

  1. 1. PHP Framework For Developer HappinessTYPO3 FlowDienstag, 28. Mai 13
  2. 2. Not Safe ForCode AllergicDienstag, 28. Mai 13
  3. 3. ...but probablyunderstandableDienstag, 28. Mai 13
  4. 4. PHP ApplicationFrameworkDienstag, 28. Mai 13
  5. 5. PHP ApplicationFrameworkWebDienstag, 28. Mai 13
  6. 6. Flow is an optimal state in whichyou feel totally engaged in anactivity.Mihaly CsikszentmihalyiDienstag, 28. Mai 13
  7. 7. Main Concerns‣ Developer Happiness‣ Code Quality‣ Domain Driven Design‣ Convention Over ConfigurationDienstag, 28. Mai 13
  8. 8. LaravelZendFrameworkCodeIgniterSymfony2Dienstag, 28. Mai 13
  9. 9. Why anotherframework?Dienstag, 28. Mai 13
  10. 10. How it beganDienstag, 28. Mai 13
  11. 11. How it began‣ 2005 - Rewrite TYPO3 CMS CoreDienstag, 28. Mai 13
  12. 12. How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everythingDienstag, 28. Mai 13
  13. 13. How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everything‣ ... continuous team growthDienstag, 28. Mai 13
  14. 14. How it began‣ 2005 - Rewrite TYPO3 CMS Core‣ 2006 - Start from scratchNo Framework provided everything‣ ... continuous team growth‣ 2011 - Release of Flow 1.0Dienstag, 28. Mai 13
  15. 15. PHP Good PointsDienstag, 28. Mai 13
  16. 16. Most Used WebLanguageDienstag, 28. Mai 13
  17. 17. Easy To LearnDienstag, 28. Mai 13
  18. 18. Available On ManyServersDienstag, 28. Mai 13
  19. 19. PHP DrawbacksDienstag, 28. Mai 13
  20. 20. Bad ReputationMany “spaghetti code” projectsDienstag, 28. Mai 13
  21. 21. Considered UglyDienstag, 28. Mai 13
  22. 22. Language FeaturesDienstag, 28. Mai 13
  23. 23. Dienstag, 28. Mai 13
  24. 24. Patterns &PhilosophyDienstag, 28. Mai 13
  25. 25. We are biased!Dienstag, 28. Mai 13
  26. 26. Domain DrivenDesignas explained by Eric EvansDienstag, 28. Mai 13
  27. 27. DDD in a nutshellDienstag, 28. Mai 13
  28. 28. DDD in a nutshell‣ DomainDienstag, 28. Mai 13
  29. 29. DDD in a nutshell‣ Domain‣ Ubiquitous LanguageDienstag, 28. Mai 13
  30. 30. DDD in a nutshell‣ Domain‣ Ubiquitous Language‣ ModelDienstag, 28. Mai 13
  31. 31. DDD in a nutshell‣ Domain‣ Ubiquitous Language‣ Model‣ Aggregate Root and RepositoriesDienstag, 28. Mai 13
  32. 32. (Web) MVCModel-View-ControllerDienstag, 28. Mai 13
  33. 33. ModelControllerView(HTTP) Request(HTTP) ResponseDienstag, 28. Mai 13
  34. 34. Convention OverConfigurationDienstag, 28. Mai 13
  35. 35. Typical file structureVendor.PackageNameClasses...ControllerDomainModelRepositoryConfigurationDocumentationMigrationsResourcesPrivatePublicTestsDienstag, 28. Mai 13
  36. 36. DependencyInjectionDienstag, 28. Mai 13
  37. 37. DI made simpleclass ActionController extends AbstractController {/*** @FlowInject* @var TYPO3FlowObjectObjectManagerInterface*/protected $objectManager;/*** @FlowInject* @var TYPO3FlowReflectionReflectionService*/protected $reflectionService;Dienstag, 28. Mai 13
  38. 38. Signal / SlotAlso called Observer PatternDienstag, 28. Mai 13
  39. 39. Emit / ConnectDienstag, 28. Mai 13
  40. 40. Aspect OrientedProgrammingDienstag, 28. Mai 13
  41. 41. Separation Of ConcernsDienstag, 28. Mai 13
  42. 42. Proxy ClassesDienstag, 28. Mai 13
  43. 43. Making PHPCode BeautifulDienstag, 28. Mai 13
  44. 44. Property MappingDienstag, 28. Mai 13
  45. 45. Get useful arguments/*** Action for creating a temporary account** @param TYPO3TestDomainModelRegistration $reg* @return void*/public function accountAction( ↵TYPO3TestDomainModelRegistration $reg) {$accountIdentifier = $reg->getUsername();Dienstag, 28. Mai 13
  46. 46. DoctrineDienstag, 28. Mai 13
  47. 47. ORMObject Relational MappingDienstag, 28. Mai 13
  48. 48. Database AbstractionDienstag, 28. Mai 13
  49. 49. MigrationsDienstag, 28. Mai 13
  50. 50. SecurityDienstag, 28. Mai 13
  51. 51. AuthenticationWho are you?Dienstag, 28. Mai 13
  52. 52. AuthorizationWhat are you allowed to do?Dienstag, 28. Mai 13
  53. 53. Content SecurityQuery RewritingDienstag, 28. Mai 13
  54. 54. Touchless Securityresources:methods:BackendController: ↵method(FullNameSpaceBackendController->.*Action())AdminController: ↵method(FullNameSpaceAdminController->.*Action())roles:Editor: [TYPO3.TYPO3CR:Administrator]Administrator: [ Editor ]acls:Administrator:methods:AdminController: GRANTEditor:methods:BackendController: GRANTDienstag, 28. Mai 13
  55. 55. Application FirewallStop RequestsDienstag, 28. Mai 13
  56. 56. Command LineDienstag, 28. Mai 13
  57. 57. Framework commandsDienstag, 28. Mai 13
  58. 58. Add your own commandsDienstag, 28. Mai 13
  59. 59. FluidDienstag, 28. Mai 13
  60. 60. XML ConformTemplatesDienstag, 28. Mai 13
  61. 61. Basic stringspublic function simpleAction() {$name = ‘Christian’;$this->view->assign(‘name’, $name);}Dienstag, 28. Mai 13
  62. 62. Basic strings<html><head></head><body><p>Hello World, I am {name}!</p></body></html>Dienstag, 28. Mai 13
  63. 63. Objectspublic function simpleAction() {$accounts = $this->accountRepository->findAll();$this->view->assign(‘accounts’, $accounts);}Dienstag, 28. Mai 13
  64. 64. Objects / Iteration<html><head></head><body><ul><f:for each=”{accounts}” as=”account”><li>{account.identifier}</li></f:for></ul></body></html>Dienstag, 28. Mai 13
  65. 65. SessionsDienstag, 28. Mai 13
  66. 66. Session Scope/**** @FlowScope("session")*/class Basket {/**** @var array*/protected $items;/*** @return array*/public function getItems() {return $this->items;}Dienstag, 28. Mai 13
  67. 67. Using the Session Objectclass MyController {/**** @FlowInject* @var TYPO3FlowSessionSessionInterface*/protected $sessionpublic function storeDataAction($data) {$this->session->putData(‘myDataKey’, $data);}public function getDataAction() {$data = $this->session->getData(‘myDataKey’);$this->view->assign(‘sessionData’, $data);}}Dienstag, 28. Mai 13
  68. 68. Dienstag, 28. Mai 13
  69. 69. StandardsDienstag, 28. Mai 13
  70. 70. PHP-FIGFramework Interoperability GroupDienstag, 28. Mai 13
  71. 71. PSR-0AutoloadingDienstag, 28. Mai 13
  72. 72. PSR-1Coding StandardsDienstag, 28. Mai 13
  73. 73. ComposerDienstag, 28. Mai 13
  74. 74. Test DrivenDevelopmentDienstag, 28. Mai 13
  75. 75. More To DiscoverDienstag, 28. Mai 13
  76. 76. No time in this talk had...‣ Internationalization‣ Caching‣ Resource Handling‣ Validation‣ Routing‣ ...Dienstag, 28. Mai 13
  77. 77. Existing ProjectsDienstag, 28. Mai 13
  78. 78. Dienstag, 28. Mai 13
  79. 79. Dienstag, 28. Mai 13
  80. 80. Dienstag, 28. Mai 13
  81. 81. Dienstag, 28. Mai 13
  82. 82. And a lot more...Dienstag, 28. Mai 13
  83. 83. @daskitsunet‣ like Books, Music, Tea and more‣ Flow and Neos Community Contact‣ Freelance Trainer / Developer‣ plays the piano‣ christian@kitsunet.deDienstag, 28. Mai 13
  84. 84. Thank you!Dienstag, 28. Mai 13

×