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

10 Tricks für Entwickler

Jun 30, 2015

Download

Technology

David Jardin

Mein Talk vom Joomla!Day Schweiz 2013.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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