Joomla2.0 architecture


Published on

If we would start from scratch with what we know now, how would Joomla! look like. From a developers/architectural point of view. Focus on Domain Driven Design.

Published in: Health & Medicine, Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Joomla2.0 architecture

  1. 1. Joomla! 2.0 Architecture J and Beyond May 6, 2011 Herman Peeren herman@yepr.nlFilip Dujardin: Crazy Building 6
  2. 2. Software Architecture• structure of the whole• under the hood
  3. 3. Extending what you have...starting small:building more• more and more• knitting...• more• and more• and even more James Wines: Highrise of Homes (1981)
  4. 4. and more...Hundertwasser
  5. 5. Until the past becomes a burden Giovanni Francesco Barbieri Guercino: Atlas (1646)
  6. 6. Example: Joomla! 1.6 ACL• earlier Access Control for editing: /administrator-folder• earlier Access Control for viewing: restricting menu- and article ac- cess for groups• newer ACL while keeping the old structures
  7. 7. After:• 1.5• 1.6• 1.7• 1.8• 1.9• 1.10• ...• 1.98 might be time for aMajor release: . N.B.: no major version forseen in framework version numbers (11.1 etc.)
  8. 8. Not even the sky is the limit!Andrea Pozzo: trompe l’oeil, fresco, St. Ignazio, Roma
  9. 9. some books:both from 2003...
  10. 10. Conversion to OOP DDD ORM TDD COC WTF Caravagio: the Conversion of St. Paul (1601)
  11. 11. Back to the OOP-basics • Simula (1960s); e.g. simulation of waiting queues • no division between data and behaviour: objects! • smaller problems that can be handledNelleke Verhoeff: Ellenlange Schlange (2003)
  12. 12. Layers• 3 main layers: presentation, domain, data• OOP: domain layer is central (DDD) Mark Rothko
  13. 13. ORM• Object - Relational Mapping• Frameworks. Java: Hibernate. PHP: Doctrine (2)• Doctrine a.o. used in Zend, Symfony etc.• Can be used in Joomla! (JCM-article)•
  14. 14. aside: LINQ... for PHP• SQL for recordsets in .NET (Language Integrated Queries)• PHP, open source:• mainly targeting Recordsets (but could be generally useful for Table Data Gateways)• Doctrine uses DQL (like SQL, but querying objects, not tables)
  15. 15. MVC? • How does our Holy Trinity MVC fit into this story?Antonio de Pereda (1611-1678): Holy Trinity
  16. 16. MVC and layers• invented 1978/1979• originally in the presentation layer• now: scattered over layers• or: instead of layers Prof. Trygve M. H. Reenskaug (Oslo)
  17. 17. ← MVC in presentation layer
  18. 18. MVC everywhere...
  19. 19. Naked Objects• PhD thesis Richard Pawson 2004 (Dublin, Ireland)• /resources/Pawson%20thesis.pdf• Foreword by Trygve Reenskaug• back to ‘behaviourally-complete’ objects! Hans Memling: Vienna Triptych Enthroned Madonna (1485), closed
  20. 20. NakedPHP• a framework to implement Naked Objects in PHP• by Giorgio Sironi•• (LGPL)Adolf Ziegler: The Four Elements: Fire, Water and Earth, Air (before 1937)
  21. 21. Experiments from the lab• System-U: all objects only a uniform interface as public methods• System-R: recources as basic objects• System-A: Access control as feature in basic objects• agregate MVC: class com_mycontents extends com_contentsPiet Mondriaan (1872-1944): tree, more and more abstract
  22. 22. Joomla! 2.0 could have:• DDD and ORM• database independency• better integrated ACL, no /administrator RESTful interface ...and be:• • Extendable API UP -TO -D AT E! Vangobot: Skyscrapers Architecture Pop (
  23. 23. “Creativity requires the courage to let go certainties” Erich FrommSergey Tyukanof ( Alice in Wonderland (2005)
  24. 24. Who joins this dance?• goal: to work towards a new major versionHenri Matisse: La Danse (1910)