Entwicklung von Joomla!
Erweiterungen
David Jardin - 21.09.13 - Joomla!Day Schweiz 2013
Tipps, Tricks und ohne Track
Samst...
Ich.
bin nichtViktorVogel.
Samstag, 21. September 13
Ich.
• Webentwickler
• OpenSource Junkie
• Joomla!holic
• stellv. Vorsitzender J&Beyond e.V.
Samstag, 21. September 13
Kenne und nutze die API.
Lektion 1
Samstag, 21. September 13
Quiz: Die API kann?
• a) Tweets suchen
• b) Beliebige (Core-)Formulare
manipulieren
• c) Beliebige PHP Klassen überschreib...
Alles.
Samstag, 21. September 13
JTwitter
• Serverseitige Abfrage via oAuth
• Unterstützt Tweets, Direct Messages,
Suchen, Trends, User, Freunde uvm.
• Bes...
JForm
XML HTML
client- und serverseitigeValidierung
wiederverwendbar
verschiedenste Feldtypen
dynamisch anpassbar
Samstag,...
Formular-Magic
• onContentPrepareForm-Event
• beliebige Modifizierung von (fast) allen
Core-Formularen
• beste Freunde: on...
Autoloader-Massaker
• JLoader::register('JDatabase', '/custom/
database_driver.php', true);
• beliebige Klassen überschrei...
JImage
$image = new JImage();
$image
->loadFile(JPATH_SITE . '/path/to/image.png')
->resize(600, 250)
->filter(' grayscale ...
JHttp
• HTTP-Client
• Unterstützt
• cURL
• fopen
• sockets
• Lösung aller allow_url_fopen Probleme
Samstag, 21. September ...
JFile & JFolder
• Automatischer FTP-Fallback für www-run
oder safe_mode on Umgebungen
• Goodie: JFilesystemPatcher - anwen...
JInput
• Ersatz für JRequest
• Unterstützung für verschiedene
Eingabeformate:
• JSON
• CLI
• POST/GET/REQUEST
Samstag, 21....
MVC. Immer.
Lektion 2
Controller
Model
View
Samstag, 21. September 13
MVC
• Best Practice weit über Joomla! hinaus
• JLegacy und Co erleichtern die Arbeit
• Macht Code übersichtlicher und bess...
Integriere Core-Features.
Lektion 3
Samstag, 21. September 13
Mehrsprachigkeit
• JLanguage
• UTF-8 kodierte .ini Dateien
• Bezeichner nach Muster
TYP_NAME_WASAUCHIMMER
• COM_CONTACT_DE...
Tagging
• Inzwischen stabile API
• wenige Zeilen Code
• großer Nutzen
Samstag, 21. September 13
ACL
• Mäßig aufwendig
• Must-have für „öffentliche“ Erweiterungen
• XML-Definition und PHP-Checks
Samstag, 21. September 13
Kategorien
com_categories in der eigenen Komponente nutzen
Samstag, 21. September 13
Triggere Events.
Lektion 4
Samstag, 21. September 13
JPluginHelper::importPlugin( 'myplugingroup' );
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger( 'onSo...
Error Reporting auf Maximum.
Lektion 5
Samstag, 21. September 13
ini_set('display_errors', 'Off');
ist keine Lösung.
Samstag, 21. September 13
Nutze eine IDE.
Lektion 6
Samstag, 21. September 13
phpStorm
• Integration von phpcs, phpunit, xdebug,
phing, composer uvm.
• Schnell
• Cross-Plattform-Kompatibel
• Kostenlos...
Nutze Phing.
Lektion 7
Samstag, 21. September 13
Nutze den PHP_CodeSniffer.
Lektion 8
Samstag, 21. September 13
Joomla! Sniffs
https://github.com/joomla/coding-standards
Samstag, 21. September 13
Betreibe Update-Server.
Lektion 9
Samstag, 21. September 13
In der Erweiterung
<updateservers>
<server type="extension" priority="1" name="name">
http://example.tld/update.xml
</serv...
Serverseitig
Akeeba Release System
Samstag, 21. September 13
Lerne FOF.
Lektion 11
Samstag, 21. September 13
Framework on Framework
• RAD-Framework
• Entwickelt von Akeeba
• unabhängig vom Core
• brandneu
• Convention over Configur...
Vorteil?
Samstag, 21. September 13
80% weniger
Code!
Samstag, 21. September 13
Fragen?
Samstag, 21. September 13
www.djumla.de
@SniperSister
Samstag, 21. September 13
Nächste SlideShare
Wird geladen in …5
×

10 Tricks für Entwickler

6.490 Aufrufe

Veröffentlicht am

Mein Talk vom Joomla!Day Schweiz 2013.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
6.490
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

10 Tricks für Entwickler

  1. 1. Entwicklung von Joomla! Erweiterungen David Jardin - 21.09.13 - Joomla!Day Schweiz 2013 Tipps, Tricks und ohne Track Samstag, 21. September 13
  2. 2. Ich. bin nichtViktorVogel. Samstag, 21. September 13
  3. 3. Ich. • Webentwickler • OpenSource Junkie • Joomla!holic • stellv. Vorsitzender J&Beyond e.V. Samstag, 21. September 13
  4. 4. Kenne und nutze die API. Lektion 1 Samstag, 21. September 13
  5. 5. Quiz: Die API kann? • a) Tweets suchen • b) Beliebige (Core-)Formulare manipulieren • c) Beliebige PHP Klassen überschreiben • d) Bilder verkleinern Samstag, 21. September 13
  6. 6. Alles. Samstag, 21. September 13
  7. 7. JTwitter • Serverseitige Abfrage via oAuth • Unterstützt Tweets, Direct Messages, Suchen, Trends, User, Freunde uvm. • Beste Freunde: JFacebook, JGithub, JOpenstreetmap, JLinkedin und JGoogle Samstag, 21. September 13
  8. 8. JForm XML HTML client- und serverseitigeValidierung wiederverwendbar verschiedenste Feldtypen dynamisch anpassbar Samstag, 21. September 13
  9. 9. Formular-Magic • onContentPrepareForm-Event • beliebige Modifizierung von (fast) allen Core-Formularen • beste Freunde: onContentPrepareData und onContentAfterSave Samstag, 21. September 13
  10. 10. Autoloader-Massaker • JLoader::register('JDatabase', '/custom/ database_driver.php', true); • beliebige Klassen überschreiben Samstag, 21. September 13
  11. 11. JImage $image = new JImage(); $image ->loadFile(JPATH_SITE . '/path/to/image.png') ->resize(600, 250) ->filter(' grayscale ') ->toFile(JPATH_SITE . '/tmp/image.png'); http://kike.zenjiapps.com/ Samstag, 21. September 13
  12. 12. JHttp • HTTP-Client • Unterstützt • cURL • fopen • sockets • Lösung aller allow_url_fopen Probleme Samstag, 21. September 13
  13. 13. JFile & JFolder • Automatischer FTP-Fallback für www-run oder safe_mode on Umgebungen • Goodie: JFilesystemPatcher - anwenden von .patch / .diff Dateien auf dem Server Samstag, 21. September 13
  14. 14. JInput • Ersatz für JRequest • Unterstützung für verschiedene Eingabeformate: • JSON • CLI • POST/GET/REQUEST Samstag, 21. September 13
  15. 15. MVC. Immer. Lektion 2 Controller Model View Samstag, 21. September 13
  16. 16. MVC • Best Practice weit über Joomla! hinaus • JLegacy und Co erleichtern die Arbeit • Macht Code übersichtlicher und besser strukturiert Samstag, 21. September 13
  17. 17. Integriere Core-Features. Lektion 3 Samstag, 21. September 13
  18. 18. Mehrsprachigkeit • JLanguage • UTF-8 kodierte .ini Dateien • Bezeichner nach Muster TYP_NAME_WASAUCHIMMER • COM_CONTACT_DETAILS • Content nicht vergessen Samstag, 21. September 13
  19. 19. Tagging • Inzwischen stabile API • wenige Zeilen Code • großer Nutzen Samstag, 21. September 13
  20. 20. ACL • Mäßig aufwendig • Must-have für „öffentliche“ Erweiterungen • XML-Definition und PHP-Checks Samstag, 21. September 13
  21. 21. Kategorien com_categories in der eigenen Komponente nutzen Samstag, 21. September 13
  22. 22. Triggere Events. Lektion 4 Samstag, 21. September 13
  23. 23. JPluginHelper::importPlugin( 'myplugingroup' ); $dispatcher = JEventDispatcher::getInstance(); $dispatcher->trigger( 'onSomethingHappend', array( &$value ) ); Events in 3 Zeilen... ...ergeben grenzenlose Möglichkeiten Samstag, 21. September 13
  24. 24. Error Reporting auf Maximum. Lektion 5 Samstag, 21. September 13
  25. 25. ini_set('display_errors', 'Off'); ist keine Lösung. Samstag, 21. September 13
  26. 26. Nutze eine IDE. Lektion 6 Samstag, 21. September 13
  27. 27. phpStorm • Integration von phpcs, phpunit, xdebug, phing, composer uvm. • Schnell • Cross-Plattform-Kompatibel • Kostenlose Lizenz für OpenSource-Entwickler Samstag, 21. September 13
  28. 28. Nutze Phing. Lektion 7 Samstag, 21. September 13
  29. 29. Nutze den PHP_CodeSniffer. Lektion 8 Samstag, 21. September 13
  30. 30. Joomla! Sniffs https://github.com/joomla/coding-standards Samstag, 21. September 13
  31. 31. Betreibe Update-Server. Lektion 9 Samstag, 21. September 13
  32. 32. In der Erweiterung <updateservers> <server type="extension" priority="1" name="name"> http://example.tld/update.xml </server> </updateservers> Samstag, 21. September 13
  33. 33. Serverseitig Akeeba Release System Samstag, 21. September 13
  34. 34. Lerne FOF. Lektion 11 Samstag, 21. September 13
  35. 35. Framework on Framework • RAD-Framework • Entwickelt von Akeeba • unabhängig vom Core • brandneu • Convention over Configuration, DRY Samstag, 21. September 13
  36. 36. Vorteil? Samstag, 21. September 13
  37. 37. 80% weniger Code! Samstag, 21. September 13
  38. 38. Fragen? Samstag, 21. September 13
  39. 39. www.djumla.de @SniperSister Samstag, 21. September 13

×