10 tricks für entwickler
DESCRIPTION
Mein Talk vom Joomla!Day Schweiz 2013.TRANSCRIPT
![Page 1: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/1.jpg)
Entwicklung von Joomla! Erweiterungen
David Jardin - 21.09.13 - Joomla!Day Schweiz 2013
Tipps, Tricks und ohne Track
Samstag, 21. September 13
![Page 2: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/2.jpg)
Ich.
bin nicht Viktor Vogel.
Samstag, 21. September 13
![Page 3: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/3.jpg)
Ich.
• Webentwickler
• OpenSource Junkie
• Joomla!holic
• stellv. Vorsitzender J&Beyond e.V.
Samstag, 21. September 13
![Page 4: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/4.jpg)
Kenne und nutze die API.
Lektion 1
Samstag, 21. September 13
![Page 5: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/5.jpg)
Quiz: Die API kann?
• a) Tweets suchen
• b) Beliebige (Core-)Formulare manipulieren
• c) Beliebige PHP Klassen überschreiben
• d) Bilder verkleinern
Samstag, 21. September 13
![Page 6: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/6.jpg)
Alles.Samstag, 21. September 13
![Page 7: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/7.jpg)
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
![Page 8: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/8.jpg)
JForm
XML HTML
client- und serverseitige Validierung
wiederverwendbar
verschiedenste Feldtypen
dynamisch anpassbar
Samstag, 21. September 13
![Page 9: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/9.jpg)
Formular-Magic
• onContentPrepareForm-Event
• beliebige Modifizierung von (fast) allen Core-Formularen
• beste Freunde: onContentPrepareData und onContentAfterSave
Samstag, 21. September 13
![Page 10: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/10.jpg)
Autoloader-Massaker
• JLoader::register('JDatabase', '/custom/database_driver.php', true);
• beliebige Klassen überschreiben
Samstag, 21. September 13
![Page 11: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/11.jpg)
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
![Page 12: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/12.jpg)
JHttp• HTTP-Client
• Unterstützt
• cURL
• fopen
• sockets
• Lösung aller allow_url_fopen Probleme
Samstag, 21. September 13
![Page 13: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/13.jpg)
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
![Page 14: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/14.jpg)
JInput
• Ersatz für JRequest
• Unterstützung für verschiedene Eingabeformate:
• JSON
• CLI
• POST/GET/REQUEST
Samstag, 21. September 13
![Page 15: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/15.jpg)
MVC. Immer.
Lektion 2
Controller
Model
View
Samstag, 21. September 13
![Page 16: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/16.jpg)
MVC
• Best Practice weit über Joomla! hinaus
• JLegacy und Co erleichtern die Arbeit
• Macht Code übersichtlicher und besser strukturiert
Samstag, 21. September 13
![Page 17: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/17.jpg)
Integriere Core-Features.
Lektion 3
Samstag, 21. September 13
![Page 18: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/18.jpg)
Mehrsprachigkeit
• JLanguage
• UTF-8 kodierte .ini Dateien
• Bezeichner nach Muster TYP_NAME_WASAUCHIMMER
• COM_CONTACT_DETAILS
• Content nicht vergessen
Samstag, 21. September 13
![Page 19: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/19.jpg)
Tagging
• Inzwischen stabile API
• wenige Zeilen Code
• großer Nutzen
Samstag, 21. September 13
![Page 20: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/20.jpg)
ACL
• Mäßig aufwendig
• Must-have für „öffentliche“ Erweiterungen
• XML-Definition und PHP-Checks
Samstag, 21. September 13
![Page 21: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/21.jpg)
Kategorien
com_categories in der eigenen Komponente nutzen
Samstag, 21. September 13
![Page 22: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/22.jpg)
Triggere Events.
Lektion 4
Samstag, 21. September 13
![Page 23: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/23.jpg)
JPluginHelper::importPlugin( 'myplugingroup' );$dispatcher = JEventDispatcher::getInstance();$dispatcher->trigger( 'onSomethingHappend', array( &$value ) );
Events in 3 Zeilen...
...ergeben grenzenlose Möglichkeiten
Samstag, 21. September 13
![Page 24: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/24.jpg)
Error Reporting auf Maximum.
Lektion 5
Samstag, 21. September 13
![Page 25: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/25.jpg)
ini_set('display_errors', 'Off');
ist keine Lösung.
Samstag, 21. September 13
![Page 26: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/26.jpg)
Nutze eine IDE.
Lektion 6
Samstag, 21. September 13
![Page 27: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/27.jpg)
phpStorm
• Integration von phpcs, phpunit, xdebug, phing, composer uvm.
• Schnell
• Cross-Plattform-Kompatibel
• Kostenlose Lizenz für OpenSource-Entwickler
Samstag, 21. September 13
![Page 28: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/28.jpg)
Nutze Phing.
Lektion 7
Samstag, 21. September 13
![Page 29: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/29.jpg)
Nutze den PHP_CodeSniffer.
Lektion 8
Samstag, 21. September 13
![Page 30: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/30.jpg)
Joomla! Sniffs
https://github.com/joomla/coding-standards
Samstag, 21. September 13
![Page 31: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/31.jpg)
Betreibe Update-Server.
Lektion 9
Samstag, 21. September 13
![Page 32: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/32.jpg)
In der Erweiterung
<updateservers> <server type="extension" priority="1" name="name"> http://example.tld/update.xml </server></updateservers>
Samstag, 21. September 13
![Page 33: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/33.jpg)
Serverseitig
Akeeba Release System
Samstag, 21. September 13
![Page 34: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/34.jpg)
Lerne FOF.
Lektion 11
Samstag, 21. September 13
![Page 35: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/35.jpg)
Framework on Framework
• RAD-Framework
• Entwickelt von Akeeba
• unabhängig vom Core
• brandneu
• Convention over Configuration, DRY
Samstag, 21. September 13
![Page 36: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/36.jpg)
Vorteil?
Samstag, 21. September 13
![Page 37: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/37.jpg)
80% weniger Code!
Samstag, 21. September 13
![Page 38: 10 Tricks für Entwickler](https://reader033.vdocuments.net/reader033/viewer/2022052907/5592a5201a28ab69798b4667/html5/thumbnails/38.jpg)
Fragen?
Samstag, 21. September 13