Top Banner
Joomla! 2.0 Architecture J and Beyond May 6, 2011 Herman Peeren www.yepr.eu [email protected] Filip Dujardin: Crazy Building 6
26

Joomla2.0 architecture

Jun 26, 2015

Download

Health & Medicine

Herman Peeren

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Joomla2.0 architecture

Joomla! 2.0 ArchitectureJ and Beyond

May 6, 2011

Herman Peeren

[email protected]

Filip Dujardin: Crazy Building 6

Page 2: Joomla2.0 architecture

Software Architecture • structure of the whole• under the hood

Page 3: Joomla2.0 architecture

Extending what you have...

building more • more and more• knitting...• more• and more• and even more

James Wines: Highrise of Homes (1981)

starting small:

Page 4: Joomla2.0 architecture

Hundertwasser

and more...

Page 5: Joomla2.0 architecture

Until the past becomes a burden

Giovanni Francesco Barbieri Guercino: Atlas (1646)

Page 6: Joomla2.0 architecture

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

Page 7: Joomla2.0 architecture

After:• 1.5• 1.6• 1.7• 1.8• 1.9• 1.10• ...• 1.98

...it might be time for a

Major release: .N.B.: no major version forseen in framework version numbers (11.1 etc.)

Page 8: Joomla2.0 architecture

Not even the sky is the limit!

Andrea Pozzo: trompe l’oeil, fresco, St. Ignazio, Roma

Page 9: Joomla2.0 architecture

some books:

both from 2003...

Page 10: Joomla2.0 architecture

Conversion to

OOP DDD ORM TDD COC WTF Caravagio: the Conversion of St. Paul (1601)

Page 11: Joomla2.0 architecture

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 handled

Nelleke Verhoeff: Ellenlange Schlange (2003)

Page 12: Joomla2.0 architecture

Layers • 3 main layers:

presentation, domain, data

• OOP: domain layer is central (DDD)

Mark Rothko

Page 13: Joomla2.0 architecture
Page 14: Joomla2.0 architecture
Page 15: Joomla2.0 architecture

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)• http://www.doctrine-project.org

Page 16: Joomla2.0 architecture

aside: LINQ... for PHP • SQL for recordsets in .NET (Language Integrated Queries)• PHP, open source: http://phplinq.codeplex.com/• mainly targeting Recordsets (but could be generally useful for

Table Data Gateways)• Doctrine uses DQL (like SQL, but querying objects, not tables)

Page 17: Joomla2.0 architecture

MVC?• How does our Holy Trinity MVC fit into this story?

Antonio de Pereda (1611-1678): Holy Trinity

Page 18: Joomla2.0 architecture

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)

Page 19: Joomla2.0 architecture

← MVC in presentation layer

Page 20: Joomla2.0 architecture

MVC everywhere...

Page 21: Joomla2.0 architecture

Naked Objects• PhD thesis Richard Pawson

2004 (Dublin, Ireland)

• http://downloads.nakedobjects.net /resources/Pawson%20thesis.pdf

• Foreword by Trygve Reenskaug

• back to ‘behaviourally-complete’ objects!

Hans Memling: Vienna Triptych Enthroned Madonna (1485), closed

Page 22: Joomla2.0 architecture

NakedPHP• a framework to implement Naked Objects in PHP• by Giorgio Sironi• http://giorgiosironi.blogspot.com/2009/07/naked-objects-in-php.html• http://sourceforge.net/projects/nakedphp/ (LGPL)

Adolf Ziegler: The Four Elements: Fire, Water and Earth, Air (before 1937)

Page 23: Joomla2.0 architecture

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_contents

Piet Mondriaan (1872-1944): tree, more and more abstract

Page 24: Joomla2.0 architecture

UP-TO-DATE!Joomla! 2.0 could have:• DDD and ORM• database independency• better integrated ACL, no /administrator• RESTful interface• Extendable API

Vangobot: Skyscrapers Architecture Pop (http://popartmachine.com/)

...and be:

Page 25: Joomla2.0 architecture

“Creativity requires the courage to let go certainties”

Erich Fromm

Sergey Tyukanof (http://www.tyukanov.com/): Alice in Wonderland (2005)

Page 26: Joomla2.0 architecture

Who joins this dance?• goal: to work towards a new major version

Henri Matisse: La Danse (1910)