Your SlideShare is downloading. ×
  • Like
T3CON11: Lazy Development using the Extension Builder
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

T3CON11: Lazy Development using the Extension Builder

  • 6,812 views
Published

Presentation slides of the TYPO3 Conference 2011 talk "Lazy Development using the Extension Builder". Find an abstract at: …

Presentation slides of the TYPO3 Conference 2011 talk "Lazy Development using the Extension Builder". Find an abstract at: http://t3con11-frankfurt.typo3.org/sessions/acceptedpapers/paper/lazy_development_using_the_extension_builder.html

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,812
On SlideShare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
50
Comments
1
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lazy Development using the Extension Builder Image by Diego FL (burtonez) http://www.flickr.com/photos/burtonez/273321136/in/photostream/ Nico de Haën, Steffen Müllerhttp://t3con11-frankfurt.typo3.org/sessions/acceptedpapers/paper/lazy_development_using_the_extension_builder.html
  • 2. About us Nico de Haën Steffen Müller TYPO3 Developer Software Developer ndh-websolutions.de /gebrüderheitz Gbr (Freelancer) Extension Builder Extension Builder Project Leader Project Member#T3CON11 Lazy Development using the Extension Builder
  • 3. Are you... ✗ developing TYPO3 extensions? ✗ developing Extbase/Fluid extensions? ✗ developing FLOW3/Fluid packages? ✗ using git/svn? ✗ facing continuously changing requirements? ✗ practicing Domain Driven Design? ✗ using the Extension Builder? ✗ using the Editing Mode (aka Roundtrip)?#T3CON11 Lazy Development using the Extension Builder
  • 4. Domain Driven Design ✗ Domain: Whats your Business about ✗ Context: Understanding the Domain ✗ Domain Model: Describing the Domain ✗ Communication: Ubiquitous Language ✗ Evolution: Iterative Process ✗ Building Blocks: Entities, Aggregate, Value Objects, ...#T3CON11 Lazy Development using the Extension Builder
  • 5. What does the Extension Builder do? ✗ Configuring Extension Properties ✗ Creating FE Plugins and BE Modules ✗ Modeling the Domain ✗ Remodeling the Domain ✗ Creating Source Code ✗ Working for you hard, while you are lazy#T3CON11 Lazy Development using the Extension Builder
  • 6. GUI OverviewExtension Properties Extension Modeler#T3CON11 Lazy Development using the Extension Builder
  • 7. Extension Properties ✗ Name, Description, ... ✗ Category, Version, ... ✗ Author#T3CON11 Lazy Development using the Extension Builder
  • 8. Extension Properties ✗ Frontend Plugins ✗ Backend Modules#T3CON11 Lazy Development using the Extension Builder
  • 9. Modeling your Domain Basic Functions of Modeler: ✗ Create Domain Objects ✗ Configure Domain Object Settings ✗ Add Properties to Domain Object ✗ Add Relations from a Domain Object to another ✗ Configure Relations ✗ Add Controller Actions#T3CON11 Lazy Development using the Extension Builder
  • 10. Modeling your Domain The Modeler#T3CON11 Lazy Development using the Extension Builder
  • 11. Modeling your Domain Add Blog Model#T3CON11 Lazy Development using the Extension Builder
  • 12. Modeling your Domain Domain Object settings#T3CON11 Lazy Development using the Extension Builder
  • 13. Modeling your Domain Controller Actions#T3CON11 Lazy Development using the Extension Builder
  • 14. Modeling your Domain Model Properties#T3CON11 Lazy Development using the Extension Builder
  • 15. Modeling your Domain Add Author Model#T3CON11 Lazy Development using the Extension Builder
  • 16. Modeling your Domain Add Relation: Blog - Author#T3CON11 Lazy Development using the Extension Builder
  • 17. Modeling your Domain Configure Relation#T3CON11 Lazy Development using the Extension Builder
  • 18. Modeling your Domain Add Post Model#T3CON11 Lazy Development using the Extension Builder
  • 19. Modeling your Domain Add Properties#T3CON11 Lazy Development using the Extension Builder
  • 20. Modeling your Domain Add Relation: Blog - Post#T3CON11 Lazy Development using the Extension Builder
  • 21. Modeling your Domain Add Tag Model#T3CON11 Lazy Development using the Extension Builder
  • 22. Modeling your Domain Add Relation Post - Tag#T3CON11 Lazy Development using the Extension Builder
  • 23. Modeling your Domain Add Comment Model#T3CON11 Lazy Development using the Extension Builder
  • 24. Modeling your Domain Add Relation Post - Comment#T3CON11 Lazy Development using the Extension Builder
  • 25. Modeling your Domain A good reason to ask your boss for a bigger screen!#T3CON11 Lazy Development using the Extension Builder
  • 26. What has been built? Result 1: Directories and files created#T3CON11 Lazy Development using the Extension Builder
  • 27. What has been built? Result 2: Records in the Backend#T3CON11 Lazy Development using the Extension Builder
  • 28. What has been built? Result 3: Editing records#T3CON11 Lazy Development using the Extension Builder
  • 29. What has been built? Result 4: Frontend Output#T3CON11 Lazy Development using the Extension Builder
  • 30. Thats it ! Thats it ?#T3CON11 Lazy Development using the Extension Builder
  • 31. Edit Mode Why to change the model? Communication problems... The Business Model changes... Remember the tree swing comic?#T3CON11 Lazy Development using the Extension Builder
  • 32. Edit Mode If the model changes... You have to: Rename Domain Objects Add Domain Objects Rename properties Add or remove properties Change relations#T3CON11 Lazy Development using the Extension Builder
  • 33. Blog Channel Classes/Controller/ BlogController.php Domain Logic Classes/Domain/Model/ Blog.php Classes/Domain/Repository/ BlogRepository.php Persistence ext_tables.sql Resources/Private/Templates/Blog/ Show.html Resources/Private/Templates/Blog/ List.html View Resources/Private/Partials/Blog/ Properties.html Resources/Private/Partials/Blog/ FormElements.html Resources/Private/Languages/ locallang_db.xml Configuration/TCA/ Blog.php Configuration ext_tables.php#T3CON11 Lazy Development using the Extension Builder
  • 34. Edit Mode Class Parser Roundtrip Service Code Generator#T3CON11 Lazy Development using the Extension Builder
  • 35. Edit Mode /**  * Returns the name  * @return string $name  */ public function getName() { if (strpos(­,$this­>name)){ return str_replace(­, ,$this­>name); } else { return $this­>name; } } ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ /**  * Returns the title  * @return string title  */ public function getTitle() { if (strpos(­,$this­>title)){ return str_replace(­, ,$this­>title); } else { return $this­>title; } }#T3CON11 Lazy Development using the Extension Builder
  • 36. Edit Mode Configure overwrite settings in: Configuration/ExtensionBuilder/settings.yaml Classes: Controller: merge Domain: Model: merge Repository: merge Configuration: TCA: merge TypoScript: keep Resources: Private: Language: locallang.xml: merge Templates: keep Layouts: skip ext_localconf.php: merge ext_tables.php: merge ext_tables.sql: merge#T3CON11 Lazy Development using the Extension Builder
  • 37. Limitations ✗ Configuration ✗ Mapping ✗ Does NOT support the traditional CSV lists like in ancient times (and will never) ✗ Inheritence ✗ General TCA limitations ✗ ...#T3CON11 Lazy Development using the Extension Builder
  • 38. Roadmap Current 2.x branch ✗ Configure (Non-) Cacheable Controller Actions ✗ Configure Switchable Controller Actions ✗ Mapping to existing tables ✗ Services ✗ Content Elements#T3CON11 Lazy Development using the Extension Builder
  • 39. Roadmap Future 3.x branch ✗ Complete new GUI (ExtJS, Oryx) ✗ Extend existing models in the modeler ✗ Make all TCA options configurable ✗ Import models from other extensions ✗ Import models from other formats (XLS, RDF etc.) ✗ Generate FLOW3 packages#T3CON11 Lazy Development using the Extension Builder
  • 40. Summary Why use the Extension Builder? ✗ Be lazy! Dont repeat yourself ✗ Supports Domain Driven Design ✗ Adapt your model anytime ✗ Cleaner code (CGL) ✗ Modeler visualizes models and relations#T3CON11 Lazy Development using the Extension Builder
  • 41. Want to join the project? ✗ Download and use the Extension Builder: http://typo3.org/extensions/repository/view/extension_builder/current/ ✗ Give Feedback ✗ Report bugs ✗ Sponsoring? Talk to us! ✗ Join the project team at Forge: http://forge.typo3.org/projects/show/extension-extension_builder#T3CON11 Lazy Development using the Extension Builder
  • 42. #T3CON11 ? Questions? Lazy Development using the Extension Builder
  • 43. Thank you Nico de Haën Mail: typo3@ndh-websolutions.de Twitter: @t3ndh Web: www.ndh-websolutions.de Steffen Müller Mail: typo3@t3node.com Twitter: @t3node Blog: www.t3node.com#T3CON11 Lazy Development using the Extension Builder