10 tricks für entwickler

39
Entwicklung von Joomla! Erweiterungen David Jardin - 21.09.13 - Joomla!Day Schweiz 2013 Tipps, Tricks und ohne Track Samstag, 21. September 13

Upload: david-jardin

Post on 30-Jun-2015

6.092 views

Category:

Technology


0 download

DESCRIPTION

Mein Talk vom Joomla!Day Schweiz 2013.

TRANSCRIPT

Page 1: 10 Tricks für Entwickler

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

Ich.

bin nicht Viktor Vogel.

Samstag, 21. September 13

Page 3: 10 Tricks für Entwickler

Ich.

• Webentwickler

• OpenSource Junkie

• Joomla!holic

• stellv. Vorsitzender J&Beyond e.V.

Samstag, 21. September 13

Page 4: 10 Tricks für Entwickler

Kenne und nutze die API.

Lektion 1

Samstag, 21. September 13

Page 5: 10 Tricks für Entwickler

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

Alles.Samstag, 21. September 13

Page 7: 10 Tricks für Entwickler

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

JForm

XML HTML

client- und serverseitige Validierung

wiederverwendbar

verschiedenste Feldtypen

dynamisch anpassbar

Samstag, 21. September 13

Page 9: 10 Tricks für Entwickler

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

Autoloader-Massaker

• JLoader::register('JDatabase', '/custom/database_driver.php', true);

• beliebige Klassen überschreiben

Samstag, 21. September 13

Page 11: 10 Tricks für Entwickler

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

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

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

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

MVC. Immer.

Lektion 2

Controller

Model

View

Samstag, 21. September 13

Page 16: 10 Tricks für Entwickler

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

Integriere Core-Features.

Lektion 3

Samstag, 21. September 13

Page 18: 10 Tricks für Entwickler

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

Tagging

• Inzwischen stabile API

• wenige Zeilen Code

• großer Nutzen

Samstag, 21. September 13

Page 20: 10 Tricks für Entwickler

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

Kategorien

com_categories in der eigenen Komponente nutzen

Samstag, 21. September 13

Page 22: 10 Tricks für Entwickler

Triggere Events.

Lektion 4

Samstag, 21. September 13

Page 23: 10 Tricks für Entwickler

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

Error Reporting auf Maximum.

Lektion 5

Samstag, 21. September 13

Page 25: 10 Tricks für Entwickler

ini_set('display_errors', 'Off');

ist keine Lösung.

Samstag, 21. September 13

Page 26: 10 Tricks für Entwickler

Nutze eine IDE.

Lektion 6

Samstag, 21. September 13

Page 27: 10 Tricks für Entwickler

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

Nutze Phing.

Lektion 7

Samstag, 21. September 13

Page 29: 10 Tricks für Entwickler

Nutze den PHP_CodeSniffer.

Lektion 8

Samstag, 21. September 13

Page 30: 10 Tricks für Entwickler

Joomla! Sniffs

https://github.com/joomla/coding-standards

Samstag, 21. September 13

Page 31: 10 Tricks für Entwickler

Betreibe Update-Server.

Lektion 9

Samstag, 21. September 13

Page 32: 10 Tricks für Entwickler

In der Erweiterung

<updateservers> <server type="extension" priority="1" name="name"> http://example.tld/update.xml </server></updateservers>

Samstag, 21. September 13

Page 34: 10 Tricks für Entwickler

Lerne FOF.

Lektion 11

Samstag, 21. September 13

Page 35: 10 Tricks für Entwickler

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

Vorteil?

Samstag, 21. September 13

Page 37: 10 Tricks für Entwickler

80% weniger Code!

Samstag, 21. September 13

Page 38: 10 Tricks für Entwickler

Fragen?

Samstag, 21. September 13

Page 39: 10 Tricks für Entwickler

www.djumla.de@SniperSister

Samstag, 21. September 13