10 Tricks für Entwickler
Post on 30-Jun-2015
6091 Views
Preview:
DESCRIPTION
Transcript
Entwicklung von Joomla! Erweiterungen
David Jardin - 21.09.13 - Joomla!Day Schweiz 2013
Tipps, Tricks und ohne Track
Samstag, 21. September 13
Ich.
bin nicht Viktor Vogel.
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 überschreiben
• d) Bilder verkleinern
Samstag, 21. September 13
Alles.Samstag, 21. September 13
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
JForm
XML HTML
client- und serverseitige Validierung
wiederverwendbar
verschiedenste Feldtypen
dynamisch anpassbar
Samstag, 21. September 13
Formular-Magic
• onContentPrepareForm-Event
• beliebige Modifizierung von (fast) allen Core-Formularen
• beste Freunde: onContentPrepareData und onContentAfterSave
Samstag, 21. September 13
Autoloader-Massaker
• JLoader::register('JDatabase', '/custom/database_driver.php', true);
• beliebige Klassen überschreiben
Samstag, 21. September 13
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
JHttp• HTTP-Client
• Unterstützt
• cURL
• fopen
• sockets
• Lösung aller allow_url_fopen Probleme
Samstag, 21. September 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
JInput
• Ersatz für JRequest
• Unterstützung für verschiedene Eingabeformate:
• JSON
• CLI
• POST/GET/REQUEST
Samstag, 21. September 13
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 besser strukturiert
Samstag, 21. September 13
Integriere Core-Features.
Lektion 3
Samstag, 21. September 13
Mehrsprachigkeit
• JLanguage
• UTF-8 kodierte .ini Dateien
• Bezeichner nach Muster TYP_NAME_WASAUCHIMMER
• COM_CONTACT_DETAILS
• Content nicht vergessen
Samstag, 21. September 13
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( 'onSomethingHappend', array( &$value ) );
Events in 3 Zeilen...
...ergeben grenzenlose Möglichkeiten
Samstag, 21. September 13
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
• Kostenlose Lizenz für OpenSource-Entwickler
Samstag, 21. September 13
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 </server></updateservers>
Samstag, 21. September 13
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 Configuration, DRY
Samstag, 21. September 13
Vorteil?
Samstag, 21. September 13
80% weniger Code!
Samstag, 21. September 13
Fragen?
Samstag, 21. September 13
top related