#jd12nl Joomla 2.5 extensies

Post on 16-Jun-2015

1.350 views 6 download

description

Verleden, heden en toekomst van Joomla! Extensies. Presentation for Dutch Joomla!Days 2012. For the links to work: please download the original pdf.

Transcript of #jd12nl Joomla 2.5 extensies

beknopt overzicht vanverleden, heden en toekomst

Herman Peeren, YeprNL Joomla!Dagen 2012

Joomla! extensies maken

1.5, zelfde principes• componenten, MVC, JTable• modules in het template hangen• plugins reageren op events• minimaal 2 bestanden: php-bestand met de code en xml-bestand om te installeren

MVC

1.5 extensies: boeken

Es gibt auch Deutsche Bücher

↓van de andere kant bekeken

1.6, 1.7, 2.5

video Joseph LeBlanc op Lynda.com (5:25 uur)

meer 2.5 ontwikkel docu:• docs.joomla.org:

http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5

• gratis/gesponsord development beginners guide Hagen Graf: http://cocoate.com/sites/cocoate.com/files/private/jdev.pdf

DaBook!• Mark Dexter & Louis Landry: Joomla!TM Programming

Excursie: overriding core• core classes laden: jimport, autoloader• worden maar 1x geladen• systeem-plugins worden voor 1e event (onBeforeInitialise) geladen• plugins kunnen behalve classes (of functies die gere-gistreerd moeten worden) ook “losse” code bevatten.• die code wordt meteen uitgevoerd• als je dan een class laadt (include_once), dan later niet meer...

uit dat boek, pagina 182-185:

Nieuw in 2.5 t.o.v. 1.5

• JForm zie James Kennard: http://www.howtojoomla.net/how-tos/development/getting-started-with-jform veldtypes:http://docs.joomla.org/Form_field

• ACL zie Sander Potjer: http://www.aclmanager.net/blog/general/31-how-to-add-basic-acl-support-to-your-extension

• Taal ook in je eigen componenten

•En verder: globalen weg; afgeleide controllers en mo-dels (JModelForm, JModelAdmin, JModelList); Nested categories (JTableNested), ook voor eigen extensies; nieuwe events; packages; update; etc.

Links: nieuw t.o.v. 1.5voor wat betreft extensies:

• http://docs.joomla.org/What’s_new_in_Joomla_1.6• http://docs.joomla.org/16Events (1.5: http://docs.joomla.org/Plugin/Events)• http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6• http://docs.joomla.org/Category:Specifications

ToolsNaast het gebruikelijke arsenaal:• IDE (b.v. Eclipse of Netbeans) • Git (SVN)• tests: PHPunit, Selenium...Ja: TDD! Want achteraf testen is oersaai.• building: (zoals Phing, Ant)

extensie-ontwikkel-hulpmiddelen:• EasyCreator:

0.0.13: http://www.easy-joomla.org/de/news/45-easycreator-update-version-0013-und-fuer-joomla-16.html 0.0.16: https://github.com/elkuku/EasyCreator/downloads (Nicolai Plath) http://www.joomla-wiki.de/dokumentation/Benutzer:Elkuku/Proyektz/EasyCreator gebruikt MVC-voorbeelden uit docs.joomla.org

• Jacc http://www.janguo.de/lang-de/repository.html

• JFooBar https://github.com/Niambie/jfoobar http://magazine.joomla.org/issues/Issue-Sept-2011/item/566-Site-Builders-can-Build-Custom-Joomla-Components

Platform applicaties• los van, naast of samen met het CMS• ontwikkeling van platform gaat harder dan van CMS• legacy-tree voor CMS • ook CLI

Toekomst, ontwikkelingen MVC vernieuwd! • JModel, JView en JController: interfaces• basis classes•minderenbetergedefinieerdeafhankelijkheden• https://github.com/joomla/joomla-platform/pull/1120

UCM: Unified Content Model•https://groups.google.com/forum/?fromgroups#!topic/joomla-dev-platform/sqdZ0B_WCiQ

Documentatie• Platform-documentatie (nieuwe MVC): http://developer.joomla.org/manual/

En nog veel meer...• Nooku-server (Dry, Convention over Code, multi-site, eigen framework) http://www.nooku.org

• Square One (Joomla! Light) http://www.squareonecms.org/

• Molajo? https://github.com/Molajo/Molajo

• CCK’s en dergelijke gaan ook door• DDD, ORM, Doctrine 2... (mijn eigen stokpaardje)

/* render list of performers for a category */foreach ($this->performers as $performer) { /* general information about the performer */ // echo $performer->getName(), $performer->getStory() etc.

/* render pictures and videos for this performer */ foreach ($performer->getMedia() as $medium) { // URL in $medium->getLocation(); }

/* render list of acts for that performer */ foreach ($performer->getActs() as $act) { /* information about the act */ // echo $act->getName(), $act->getStory() etc.

/* render pictures and videos for this act */ foreach ($act->getMedia() as $medium) { // URL in $medium->getLocation(); } }}

Nested ArrayCollections

Vragen?

Bedankt en tot ziens!herman@yepr.nl

www.hermanpeeren.nl www.yepr.eu