34
Joomla! Framework PHPBootCamp NL, June 2007 Text Stick to the code ! The code is not like rules it’s more a set of guidelines

PHPBootCamp - Joomla! Framework

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: PHPBootCamp - Joomla! Framework

Joomla! Framework

PHPBootCamp NL, June 2007

TextStick to the code !

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

Page 2: PHPBootCamp - Joomla! Framework

http://www.joomla.org 1

About me

Johan ‘Jinx’ JanssensJoomla! Project manager and lead developer

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 3: PHPBootCamp - Joomla! Framework

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

Page 4: PHPBootCamp - Joomla! Framework

http://www.joomla.org 3

zendCreative Commons Attribution-Noncommercial-Share Alike 2.0

Page 5: PHPBootCamp - Joomla! Framework

http://www.joomla.org 4

symfonyCreative Commons Attribution-Noncommercial-Share Alike 2.0

Page 6: PHPBootCamp - Joomla! Framework

http://www.joomla.org 5

joomlaCreative Commons Attribution-Noncommercial-Share Alike 2.0

Page 7: PHPBootCamp - Joomla! Framework

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

Page 8: PHPBootCamp - Joomla! Framework

http://www.joomla.org 7

Intro

1. Goals

2. Philosophy

2. Architecture

3. Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 9: PHPBootCamp - Joomla! Framework

http://www.joomla.org 8

Goals

Goals

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 10: PHPBootCamp - Joomla! Framework

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

Page 11: PHPBootCamp - Joomla! Framework

http://www.joomla.org 10

Goals

ww.ohloh.net

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 12: PHPBootCamp - Joomla! Framework

http://www.joomla.org 11

Philosophy

Philosophy

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 13: PHPBootCamp - Joomla! Framework

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

Page 14: PHPBootCamp - Joomla! Framework

http://www.joomla.org 13

Architecture

Architecture

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 15: PHPBootCamp - Joomla! Framework

http://www.joomla.org 14

ArchitectureCreative Commons Attribution-Noncommercial-Share Alike 2.0

Page 16: PHPBootCamp - Joomla! Framework

http://www.joomla.org 15

Architecture

Joomla! CMS

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 17: PHPBootCamp - Joomla! Framework

http://www.joomla.org 16

Architecture

Joomla! CMS

Joomla! CMF

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 18: PHPBootCamp - Joomla! Framework

http://www.joomla.org 17

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 19: PHPBootCamp - Joomla! Framework

http://www.joomla.org 18

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Application

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 20: PHPBootCamp - Joomla! Framework

http://www.joomla.org 19

Architecture

Joomla! CMS

Joomla! CMF

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 21: PHPBootCamp - Joomla! Framework

http://www.joomla.org 20

Architecture

Joomla ! CMS

Joomla! CMF

Libraries Plugins

Extensions

Application

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 22: PHPBootCamp - Joomla! Framework

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

Page 23: PHPBootCamp - Joomla! Framework

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

Page 24: PHPBootCamp - Joomla! Framework

http://www.joomla.org 23

Framework

Framework

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 25: PHPBootCamp - Joomla! Framework

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

Page 26: PHPBootCamp - Joomla! Framework

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

Page 27: PHPBootCamp - Joomla! Framework

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

Page 28: PHPBootCamp - Joomla! Framework

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

Page 29: PHPBootCamp - Joomla! Framework

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

Page 30: PHPBootCamp - Joomla! Framework

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

Page 31: PHPBootCamp - Joomla! Framework

http://www.joomla.org 30

Future

What about the future ?

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 32: PHPBootCamp - Joomla! Framework

http://www.joomla.org 31

FutureCreative Commons Attribution-Noncommercial-Share Alike 2.0

Page 33: PHPBootCamp - Joomla! Framework

http://www.joomla.org 32

Questions

Questions ?

Stump the geek

Creative Commons Attribution-Noncommercial-Share Alike 2.0

Page 34: PHPBootCamp - Joomla! Framework

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