#jd12nl joomla 2.5 extensies
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
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