SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Joomla! 2.0 Architecture
                                    J and Beyond
                                      May 6, 2011




                                   Herman Peeren
                                        www.yepr.eu
                                     herman@yepr.nl
Filip Dujardin: Crazy Building 6
Software Architecture
•	   structure of the whole
•	   under the hood
Extending what you have...
starting small:




building more

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


                     James Wines: Highrise of Homes (1981)
and more...




Hundertwasser
Until the past becomes a burden




    Giovanni Francesco Barbieri Guercino: Atlas (1646)
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
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.)
Not even the sky is the limit!




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




both from 2003...
Conversion
    to

  OOP
  DDD
  ORM
  TDD
  COC
  WTF
   Caravagio: the Conversion of St. Paul (1601)
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)
Layers
•	   3 main layers:

     presentation,
     domain,
     data


•	   OOP: domain layer
     is central (DDD)




                         Mark Rothko
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
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)
MVC?
     •	   How does our Holy Trinity MVC fit into this story?




Antonio de Pereda (1611-1678): Holy Trinity
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)
← MVC in presentation layer
MVC everywhere...
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
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)
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
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 (http://popartmachine.com/)
“Creativity
                                  requires the courage
                                  to let go certainties”                 Erich Fromm




Sergey Tyukanof (http://www.tyukanov.com/): Alice in Wonderland (2005)
Who joins this dance?
•	   goal: to work towards a new major version




Henri Matisse: La Danse (1910)

Más contenido relacionado

Similar a Joomla2.0 architecture

The Pharo Evolution
The Pharo EvolutionThe Pharo Evolution
The Pharo EvolutionESUG
 
OO and Rails...
OO and Rails... OO and Rails...
OO and Rails... adzdavies
 
Zope is dead - Long live Zope
Zope is dead - Long live ZopeZope is dead - Long live Zope
Zope is dead - Long live ZopeLennart Regebro
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big companyDocker, Inc.
 
Intro to openFrameworks
Intro to openFrameworksIntro to openFrameworks
Intro to openFrameworksKyle McDonald
 
Open Source Technology and Community
Open Source Technology and CommunityOpen Source Technology and Community
Open Source Technology and CommunitySammy Fung
 
Involutionary%20Self-Replicating%20Machines.ppt_1
Involutionary%20Self-Replicating%20Machines.ppt_1Involutionary%20Self-Replicating%20Machines.ppt_1
Involutionary%20Self-Replicating%20Machines.ppt_1David Keirsey
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
 
Introducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsIntroducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsRokesh Jankie
 
Why Open Cloud Platforms are important - OSCON 2013
Why Open Cloud Platforms are important - OSCON 2013Why Open Cloud Platforms are important - OSCON 2013
Why Open Cloud Platforms are important - OSCON 2013Andy Piper
 
Php Symfony and software-life-cycle
Php Symfony and software-life-cyclePhp Symfony and software-life-cycle
Php Symfony and software-life-cycleSwatantra Kumar
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...David Beazley (Dabeaz LLC)
 
Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Miguel Pardal
 

Similar a Joomla2.0 architecture (20)

The Pharo Evolution
The Pharo EvolutionThe Pharo Evolution
The Pharo Evolution
 
OO and Rails...
OO and Rails... OO and Rails...
OO and Rails...
 
Haskell @ HAN Arnhem 2013-2014
Haskell @ HAN Arnhem 2013-2014Haskell @ HAN Arnhem 2013-2014
Haskell @ HAN Arnhem 2013-2014
 
EESTEC Android Workshop 1
EESTEC Android Workshop 1EESTEC Android Workshop 1
EESTEC Android Workshop 1
 
Zope is dead - Long live Zope
Zope is dead - Long live ZopeZope is dead - Long live Zope
Zope is dead - Long live Zope
 
Docker in a big company
Docker in a big companyDocker in a big company
Docker in a big company
 
Gophercon 2016 recap
Gophercon 2016 recapGophercon 2016 recap
Gophercon 2016 recap
 
Intro to openFrameworks
Intro to openFrameworksIntro to openFrameworks
Intro to openFrameworks
 
Open Source Technology and Community
Open Source Technology and CommunityOpen Source Technology and Community
Open Source Technology and Community
 
Involutionary%20Self-Replicating%20Machines.ppt_1
Involutionary%20Self-Replicating%20Machines.ppt_1Involutionary%20Self-Replicating%20Machines.ppt_1
Involutionary%20Self-Replicating%20Machines.ppt_1
 
Artifacts evolution
Artifacts evolutionArtifacts evolution
Artifacts evolution
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 
Introducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applicationsIntroducing TensorFlow: The game changer in building "intelligent" applications
Introducing TensorFlow: The game changer in building "intelligent" applications
 
Why Open Cloud Platforms are important - OSCON 2013
Why Open Cloud Platforms are important - OSCON 2013Why Open Cloud Platforms are important - OSCON 2013
Why Open Cloud Platforms are important - OSCON 2013
 
Splash
SplashSplash
Splash
 
Php Symfony and software-life-cycle
Php Symfony and software-life-cyclePhp Symfony and software-life-cycle
Php Symfony and software-life-cycle
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
 
Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)Eclipse workshop presentation (March 2016)
Eclipse workshop presentation (March 2016)
 
Docker 2014
Docker 2014Docker 2014
Docker 2014
 
Sync considered unethical
Sync considered unethicalSync considered unethical
Sync considered unethical
 

Más de Herman Peeren

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfHerman Peeren
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfHerman Peeren
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldHerman Peeren
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingHerman Peeren
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015Herman Peeren
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Herman Peeren
 
Next Generation Joomla!
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!Herman Peeren
 
Behat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPHerman Peeren
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHPHerman Peeren
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aanHerman Peeren
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Herman Peeren
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensiesHerman Peeren
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templatesHerman Peeren
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Herman Peeren
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomlaHerman Peeren
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns IllustratedHerman Peeren
 

Más de Herman Peeren (20)

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdf
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdf
 
Cut & Shave
Cut & ShaveCut & Shave
Cut & Shave
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
 
Dci in PHP
Dci in PHPDci in PHP
Dci in PHP
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional Programming
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
 
Event Sourcing
Event SourcingEvent Sourcing
Event Sourcing
 
Next Generation Joomla!
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!
 
Behat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHP
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHP
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aan
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
 
#jd12nl Seblod 2
#jd12nl  Seblod 2#jd12nl  Seblod 2
#jd12nl Seblod 2
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomla
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 

Último

MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfMedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfSasikiranMarri
 
SWD (Short wave diathermy)- Physiotherapy.ppt
SWD (Short wave diathermy)- Physiotherapy.pptSWD (Short wave diathermy)- Physiotherapy.ppt
SWD (Short wave diathermy)- Physiotherapy.pptMumux Mirani
 
Apiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptApiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptkedirjemalharun
 
97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAAjennyeacort
 
COVID-19 (NOVEL CORONA VIRUS DISEASE PANDEMIC ).pptx
COVID-19  (NOVEL CORONA  VIRUS DISEASE PANDEMIC ).pptxCOVID-19  (NOVEL CORONA  VIRUS DISEASE PANDEMIC ).pptx
COVID-19 (NOVEL CORONA VIRUS DISEASE PANDEMIC ).pptxBibekananda shah
 
Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Mohamed Rizk Khodair
 
History and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfHistory and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfSasikiranMarri
 
Culture and Health Disorders Social change.pptx
Culture and Health Disorders Social change.pptxCulture and Health Disorders Social change.pptx
Culture and Health Disorders Social change.pptxDr. Dheeraj Kumar
 
Informed Consent Empowering Healthcare Decision-Making.pptx
Informed Consent Empowering Healthcare Decision-Making.pptxInformed Consent Empowering Healthcare Decision-Making.pptx
Informed Consent Empowering Healthcare Decision-Making.pptxSasikiranMarri
 
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...Wessex Health Partners
 
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityCEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityHarshChauhan475104
 
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...Badalona Serveis Assistencials
 
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-KnowledgeGiftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-Knowledgeassessoriafabianodea
 
Presentation on General Anesthetics pdf.
Presentation on General Anesthetics pdf.Presentation on General Anesthetics pdf.
Presentation on General Anesthetics pdf.Prerana Jadhav
 
world health day presentation ppt download
world health day presentation ppt downloadworld health day presentation ppt download
world health day presentation ppt downloadAnkitKumar311566
 
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisVarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisGolden Helix
 
maternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalitymaternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalityhardikdabas3
 
Biomechanics- Shoulder Joint!!!!!!!!!!!!
Biomechanics- Shoulder Joint!!!!!!!!!!!!Biomechanics- Shoulder Joint!!!!!!!!!!!!
Biomechanics- Shoulder Joint!!!!!!!!!!!!ibtesaam huma
 
Hematology and Immunology - Leukocytes Functions
Hematology and Immunology - Leukocytes FunctionsHematology and Immunology - Leukocytes Functions
Hematology and Immunology - Leukocytes FunctionsMedicoseAcademics
 
Introduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiIntroduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiGoogle
 

Último (20)

MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdfMedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
MedDRA-A-Comprehensive-Guide-to-Standardized-Medical-Terminology.pdf
 
SWD (Short wave diathermy)- Physiotherapy.ppt
SWD (Short wave diathermy)- Physiotherapy.pptSWD (Short wave diathermy)- Physiotherapy.ppt
SWD (Short wave diathermy)- Physiotherapy.ppt
 
Apiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.pptApiculture Chapter 1. Introduction 2.ppt
Apiculture Chapter 1. Introduction 2.ppt
 
97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA97111 47426 Call Girls In Delhi MUNIRKAA
97111 47426 Call Girls In Delhi MUNIRKAA
 
COVID-19 (NOVEL CORONA VIRUS DISEASE PANDEMIC ).pptx
COVID-19  (NOVEL CORONA  VIRUS DISEASE PANDEMIC ).pptxCOVID-19  (NOVEL CORONA  VIRUS DISEASE PANDEMIC ).pptx
COVID-19 (NOVEL CORONA VIRUS DISEASE PANDEMIC ).pptx
 
Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)Primary headache and facial pain. (2024)
Primary headache and facial pain. (2024)
 
History and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdfHistory and Development of Pharmacovigilence.pdf
History and Development of Pharmacovigilence.pdf
 
Culture and Health Disorders Social change.pptx
Culture and Health Disorders Social change.pptxCulture and Health Disorders Social change.pptx
Culture and Health Disorders Social change.pptx
 
Informed Consent Empowering Healthcare Decision-Making.pptx
Informed Consent Empowering Healthcare Decision-Making.pptxInformed Consent Empowering Healthcare Decision-Making.pptx
Informed Consent Empowering Healthcare Decision-Making.pptx
 
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...
Wessex Health Partners Wessex Integrated Care, Population Health, Research & ...
 
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand UniversityCEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
CEHPALOSPORINS.pptx By Harshvardhan Dev Bhoomi Uttarakhand University
 
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...
Presentació "Real-Life VR Integration for Mild Cognitive Impairment Rehabilit...
 
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-KnowledgeGiftedness: Understanding Everyday Neurobiology for Self-Knowledge
Giftedness: Understanding Everyday Neurobiology for Self-Knowledge
 
Presentation on General Anesthetics pdf.
Presentation on General Anesthetics pdf.Presentation on General Anesthetics pdf.
Presentation on General Anesthetics pdf.
 
world health day presentation ppt download
world health day presentation ppt downloadworld health day presentation ppt download
world health day presentation ppt download
 
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic AnalysisVarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
VarSeq 2.6.0: Advancing Pharmacogenomics and Genomic Analysis
 
maternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortalitymaternal mortality and its causes and how to reduce maternal mortality
maternal mortality and its causes and how to reduce maternal mortality
 
Biomechanics- Shoulder Joint!!!!!!!!!!!!
Biomechanics- Shoulder Joint!!!!!!!!!!!!Biomechanics- Shoulder Joint!!!!!!!!!!!!
Biomechanics- Shoulder Joint!!!!!!!!!!!!
 
Hematology and Immunology - Leukocytes Functions
Hematology and Immunology - Leukocytes FunctionsHematology and Immunology - Leukocytes Functions
Hematology and Immunology - Leukocytes Functions
 
Introduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali RaiIntroduction to Sports Injuries by- Dr. Anjali Rai
Introduction to Sports Injuries by- Dr. Anjali Rai
 

Joomla2.0 architecture

  • 1. Joomla! 2.0 Architecture J and Beyond May 6, 2011 Herman Peeren www.yepr.eu herman@yepr.nl Filip Dujardin: Crazy Building 6
  • 2. Software Architecture • structure of the whole • under the hood
  • 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)
  • 5. Until the past becomes a burden Giovanni Francesco Barbieri Guercino: Atlas (1646)
  • 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. 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.)
  • 8. Not even the sky is the limit! Andrea Pozzo: trompe l’oeil, fresco, St. Ignazio, Roma
  • 10. Conversion to OOP DDD ORM TDD COC WTF Caravagio: the Conversion of St. Paul (1601)
  • 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 handled Nelleke Verhoeff: Ellenlange Schlange (2003)
  • 12. Layers • 3 main layers: presentation, domain, data • OOP: domain layer is central (DDD) Mark Rothko
  • 13.
  • 14.
  • 15. 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
  • 16. 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)
  • 17. MVC? • How does our Holy Trinity MVC fit into this story? Antonio de Pereda (1611-1678): Holy Trinity
  • 18. 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)
  • 19. ← MVC in presentation layer
  • 21. 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
  • 22. 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)
  • 23. 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
  • 24. 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 (http://popartmachine.com/)
  • 25. “Creativity requires the courage to let go certainties” Erich Fromm Sergey Tyukanof (http://www.tyukanov.com/): Alice in Wonderland (2005)
  • 26. Who joins this dance? • goal: to work towards a new major version Henri Matisse: La Danse (1910)