10 tricks für entwickler

Post on 30-Jun-2015

6.092 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Mein Talk vom Joomla!Day Schweiz 2013.

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

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

www.djumla.de@SniperSister

Samstag, 21. September 13

top related