PHPBootCamp - Joomla! Framework

  • View
    64.391

  • Download
    0

  • Category

    Business

Preview:

DESCRIPTION

Presentation given at the PHPBootCamp.nl on the 2th of june 2007. Other frameworks presented where Zend and Symfony.

Citation preview

Joomla! Framework

PHPBootCamp NL, June 2007

TextStick to the code !

The code is not like rules it’s more a set of guidelines

http://www.joomla.org 1

About me

Johan ‘Jinx’ JanssensJoomla! Project manager and lead developer

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 2

What is Joomla!

Open Source Content Management System

Jumla (Swahili) : all together

Founded in september 2006

Rebrand from Mambo

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 3

zendCreative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 4

symfonyCreative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 5

joomlaCreative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 6

situation

Content Management Framework

Web Application Framework

PHP Class Library

Joomla!

Symfony

Zend

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 7

Intro

1. Goals

2. Philosophy

2. Architecture

3. Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 8

Goals

Goals

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 9

Goals

Joomla! 1.5 Goals

1. Internationalisation

2. Application framework

3. Extendibility

4. Accessibility/Usability

5. Backwards compatiblity

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 10

Goals

ww.ohloh.net

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 11

Philosophy

Philosophy

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 12

Philosophy

Joomla! concepts

opensource content management

• freedom

• choice

• control

• fun

• keep is small simple (KISS)

• be flexible and agile

• design to be extendible

• reduce choice

• use the 80/20 principle Richard Koche : www.the8020principle.com/

Barry Swharts : video.google.com/videoplay?docid=6127548813950043200

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 13

Architecture

Architecture

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 14

ArchitectureCreative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 15

Architecture

Joomla! CMS

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 16

Architecture

Joomla! CMS

Joomla! CMF

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 17

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 18

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Application

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 19

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 20

Architecture

Joomla ! CMS

Joomla! CMF

Libraries Plugins

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 21

Architecture

Joomla ! CMS

Joomla! CMF

XML-RPCInstallationSiteAdministrator

Libraries Plugins

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 22

Architecture

Joomla ! CMS

Joomla! CMF

Components Modules Templates Languages

XML-RPCInstallationSiteAdministrator

Libraries Plugins

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 23

Framework

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 24

Framework

Why yet another PHP framework ?

Zend Mojavi

CakePHP

PHPWACT

Mojavi

PHPOnTrax

Studs Prado

CodeIgniter

SymfonyAchievo

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 25

Framework

Framework principles

1. Pragmatic programming concepts

2. Object Oriented API

4. Modularised design

5. Focussed on content management

6. Build for PHP4 and upwards compatible with PHP5

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 26

Framework

Framework concepts

1. Decouple as much as possible

2. Use design patterns where possible

3. Don’t repeat yourself (DRY)

4. Remember the big picture

5. Create declarative interfaces

6. Keep it dry, shy, and tell the other guywww.pragmaticprogrammer.com/articles/may_04_oo1.pdf

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 27

Framework

Framework design patterns

1. Factory pattern

2. Singleton pattern

3. Template pattern

4. Adapter pattern

5. Composition pattern

6. Registry pattern

7. Observer pattern

8. MVC pattern

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 28

Framework

Framework packages

1. application

2. base

3. cache

4. client

5. database`

6. document

7. environment

8. event

9. filesystem

10. filter

11. html

12. i18n

11. installer

12. registry

13. session

14. template

15. user

16. utilities

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 29

Framework

See also : http://dev.joomla.org/component/option,com_jd-wp/Itemid,33/p,201/

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 30

Future

What about the future ?

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 31

FutureCreative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 32

Questions

Questions ?

Stump the geek

Creative Commons Attribution-Noncommercial-Share Alike 2.0

http://www.joomla.org 33

References

References

• Download 1.5 nightly http://dev.joomla.org/content/view/17/60/

• Screenshots of 1.5 http://joomla15.blogspot.com

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Recommended