SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Entwicklung von Joomla!
Erweiterungen
David Jardin - 21.09.13 - Joomla!Day Schweiz 2013
Tipps, Tricks und ohne Track
Samstag, 21. September 13
Ich.
bin nichtViktorVogel.
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 serverseitigeValidierung
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
www.djumla.de
@SniperSister
Samstag, 21. September 13

Contenu connexe

En vedette

Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutschRobert Deutz
 
Raspberry Pi für Einsteiger
Raspberry Pi für EinsteigerRaspberry Pi für Einsteiger
Raspberry Pi für EinsteigerJoachim Hummel
 
Gestalten von websites mit dem cms joomla
Gestalten von websites mit dem cms joomlaGestalten von websites mit dem cms joomla
Gestalten von websites mit dem cms joomlaGuenter Nimmerfall
 
Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Christian Götz
 

En vedette (6)

Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutsch
 
Raspberry Pi für Einsteiger
Raspberry Pi für EinsteigerRaspberry Pi für Einsteiger
Raspberry Pi für Einsteiger
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Konzepte ausarbeiten
Konzepte ausarbeitenKonzepte ausarbeiten
Konzepte ausarbeiten
 
Gestalten von websites mit dem cms joomla
Gestalten von websites mit dem cms joomlaGestalten von websites mit dem cms joomla
Gestalten von websites mit dem cms joomla
 
Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]
 

Similaire à 10 Tricks für Entwickler

FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
Javascript done right
Javascript done rightJavascript done right
Javascript done rightDirk Ginader
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungenmolily
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittdominion
 
Ruby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungRuby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungThomas R. Koll
 
Developing UXD - weitere Tipps, Tricks und Argumente
Developing UXD - weitere Tipps, Tricks und ArgumenteDeveloping UXD - weitere Tipps, Tricks und Argumente
Developing UXD - weitere Tipps, Tricks und ArgumenteDeveloping UXD
 
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...Verein FM Konferenz
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
UI Debugging - Cocoaheads Dresden (Deutsch)
UI Debugging - Cocoaheads Dresden (Deutsch)UI Debugging - Cocoaheads Dresden (Deutsch)
UI Debugging - Cocoaheads Dresden (Deutsch)Pit Garbe
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heutePhilipp Burgmer
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der WebentwicklungSebastian Springer
 
Google Partners, Mobile Websites-Zertifizierung
Google Partners, Mobile Websites-ZertifizierungGoogle Partners, Mobile Websites-Zertifizierung
Google Partners, Mobile Websites-ZertifizierungRichard Joos
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 

Similaire à 10 Tricks für Entwickler (20)

FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
 
Ruby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungRuby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze Einführung
 
Developing UXD - weitere Tipps, Tricks und Argumente
Developing UXD - weitere Tipps, Tricks und ArgumenteDeveloping UXD - weitere Tipps, Tricks und Argumente
Developing UXD - weitere Tipps, Tricks und Argumente
 
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
UI Debugging - Cocoaheads Dresden (Deutsch)
UI Debugging - Cocoaheads Dresden (Deutsch)UI Debugging - Cocoaheads Dresden (Deutsch)
UI Debugging - Cocoaheads Dresden (Deutsch)
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heute
 
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der PraxisGWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
 
Google Partners, Mobile Websites-Zertifizierung
Google Partners, Mobile Websites-ZertifizierungGoogle Partners, Mobile Websites-Zertifizierung
Google Partners, Mobile Websites-Zertifizierung
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 

Plus de David Jardin

(Unit )-Testing for Joomla
(Unit )-Testing for Joomla(Unit )-Testing for Joomla
(Unit )-Testing for JoomlaDavid Jardin
 
Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5David Jardin
 
CMS-Garden 2013 - How we brought Joomla! to the CeBIT
CMS-Garden 2013 - How we brought Joomla! to the CeBITCMS-Garden 2013 - How we brought Joomla! to the CeBIT
CMS-Garden 2013 - How we brought Joomla! to the CeBITDavid Jardin
 
Joomla! Organisationsstruktur
Joomla! OrganisationsstrukturJoomla! Organisationsstruktur
Joomla! OrganisationsstrukturDavid Jardin
 
Joomla! Versionsstrategie
Joomla! VersionsstrategieJoomla! Versionsstrategie
Joomla! VersionsstrategieDavid Jardin
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.David Jardin
 
Content Construction Kit's für Joomla
Content Construction Kit's für JoomlaContent Construction Kit's für Joomla
Content Construction Kit's für JoomlaDavid Jardin
 

Plus de David Jardin (11)

Der CMS-Garden
Der CMS-GardenDer CMS-Garden
Der CMS-Garden
 
(Unit )-Testing for Joomla
(Unit )-Testing for Joomla(Unit )-Testing for Joomla
(Unit )-Testing for Joomla
 
Der J&Beyond e.V.
Der J&Beyond e.V.Der J&Beyond e.V.
Der J&Beyond e.V.
 
CMS-Garden
CMS-GardenCMS-Garden
CMS-Garden
 
Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5Migration joomla 1.5 : 2.5
Migration joomla 1.5 : 2.5
 
CMS-Garden 2013 - How we brought Joomla! to the CeBIT
CMS-Garden 2013 - How we brought Joomla! to the CeBITCMS-Garden 2013 - How we brought Joomla! to the CeBIT
CMS-Garden 2013 - How we brought Joomla! to the CeBIT
 
Joomla! Organisationsstruktur
Joomla! OrganisationsstrukturJoomla! Organisationsstruktur
Joomla! Organisationsstruktur
 
SEBLOD CCK
SEBLOD CCKSEBLOD CCK
SEBLOD CCK
 
Joomla! Versionsstrategie
Joomla! VersionsstrategieJoomla! Versionsstrategie
Joomla! Versionsstrategie
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
 
Content Construction Kit's für Joomla
Content Construction Kit's für JoomlaContent Construction Kit's für Joomla
Content Construction Kit's für Joomla
 

10 Tricks für Entwickler