In dieser Präsentation möchte ich ein paar Tricks und Tipps bei der Entwicklung von Erweiterungen weitergeben, die ich über die Jahre gesammelt habe.
Themen, die behandelt werden:
- Joomla! API / vorhandene Funktionen nutzen
- Entwicklungsumgebung (IDE / Lokale Serverumgebung)
- Workflow bei der Entwicklung (Prozess zur finalen Version)
- Optimierungspotentiale (Phing, Code Sniffer, Update-Strategie)
- Feedback / Diskussion / Kritik
Über den Autor:
Viktor arbeitet seit Joomla! 1.0 (2005) mit dem Content Management System und ist Entwickler von über 30 Erweiterungen, die er der Joomla! Community kostenlos zur Verfügung stellt. Er engagiert sich im JandBeyond e.V. und CMS Garden. Studiert hat er Informatik am KIT, beruflich ist er als Joomla! Spezialist bei 1&1 Internet AG angestellt und nebenbei auch als freiberuflicher Webentwickler tätig.
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln
1. Tipps und Tricks
für Erweiterungs-entwickler
JoomlaDay Germany – Köln - 2014
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
2. Gliederung
• Vorstellung
• Joomla! API / vorhandene Funktionen nutzen
• Entwicklungsumgebung (IDE / Lokale
Serverumgebung)
• Workflow bei der Entwicklung (Prozess zur finalen
Version)
• Optimierungspotentiale (Allgemein, Phing, Code
Sniffer)
• Feedback / Diskussion / Kritik
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
3. Vorstellung
• Arbeite seit 2005 mit Joomla!
o Aktive Teilnahme in der Community
o Bug Squash Team
o Core Contributions
• Privates Joomla! Projekt
o Kubik-Rubik Joomla! Extensions
o Über 30 kostenlose Erweiterungen
• Joomla! Spezialist bei 1&1
• Freiberuflicher Webentwickler
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
4. Erweiterungstypen
• Komponenten
o Vollständige Anwendungen innerhalb der Installation
o Eigene Administrationsoberfläche
o Ausgabe der Erweiterung über Views im Hauptbereich
• Plugins
o Werden getriggert und arbeiten vorwiegend im Hintergrund
o Sind unterteilt in verschiedene Typen (Content, System...)
o Manipulieren Daten, geben diese nicht aus
• Module
o Einblendung auf vorgegebenen Templatepositionen
o Ausgabe von Inhalten auf diesen Positionen (Widget)
o Arbeiten meist eng mit Komponenten zusammen (Login-Modul)
• Templates
o Definieren die Ausgabe der Website – bieten Platzhalter für Inhalte
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
5. Framework – API
• Joomla! Framework
o Modulares PHP-Framework
o Sammlung von Klassen und Funktionen
o MVC Muster
• Model - Datenmodell
• View - Präsentation
• Controller – Programmsteuerung
• Joomla! CMS API
o Übersicht http://api.joomla.org/
o Ordner libraries
• cms
• joomla
• legacy
• fof
• ....
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
6. Wichtige Klassen
• JFactory
o Factory-Muster – je eine Instanz für Objekte
• JFactory::getUser(); // JUser
• JFactory::getDocument(); // JDocument
• JFactory:: getDBO(); // Jdatabase
• ... (siehe libraries/joomla/factory.php)
• JDatabase
o Kommunikation mit der Datenbank
• JInput
o Verarbeitung von Abfragen / Requests
• JDocument
o Dokumentverarbeitung (HTML, JSON, XML etc.)
• JHtml, JHttp, JMail, JUri, JRoute, JText
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
7. RAD / FOF
• Rapid Application Development / Framework On
Framework
• Häufig benötigte Funktionalitäten mit wenigen
Zeilen Code verwenden
o Code-Reduzierung von bis zu 80% möglich
o Listenansicht generieren
o Datenbankeinträge anzeigen und manipulieren
• DRY – Don't repeat yourself
• F0F (F Null F) vs. FOF
o https://www.akeebabackup.com/home/news/1558-info-about-fof-and-f0f.
html
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
8. Entwicklungsumgebung
• Lokaler Webserver
o PHP + Xdebug und MySQL
o Windows: XAMPP, WampServer, EasyPHP
o Mac: MAMP
o Linux: LAMP
• Texteditor
o Notepad++, Sublime
o Integrierte Entwicklungsumgebung: PhpStorm, Netbeans
• Webbrowser
o Firefox + Firebug
• Zusätzliche Software
o FTP-Programm: FileZilla
• http://docs.joomla.org/Setting_up_your_workstation_for_Joom
la_development
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
9. Lokaler Webserver
• Entwicklung stets lokal durchführen
o Schneller, aufgrund fehlender Dateiübertragung
o Server-Einstellungen individuell setzbar
• Versionsverwaltung nutzen
o Git auf eigenem Server
o Dienste wie GitHub, GitLab
• Debuggen ist einfacher
o Xdebug
• Projekt in IDE anlegen
o Zugriff auf API / Klassen
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
10. Editoren
• Guten Editor für schnelle Bearbeitung
o Encoding beachten
o Keine Auszeichnungssprache (z.B.: Word)
o Notepad++
• IDE – Integrierte Entwicklungsumgebung
o Ein MUST HAVE für die Entwicklung
o Auto-Vervollständigung
o Fehlerkorrektur
o Projektverwaltung
o Anbindung an Versionsverwaltungssysteme
o Debugging
o PhpStorm (Java VM – Proprietär – kostenlose Lizenz für OpenSource
Entwickler), NetBeans (Java - GPL)
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
11. Workflow
• Der Entwicklungsprozess einer Erweiterung
o Idee
o Anforderungen
o Recherche
o Entwicklung
o Tests
o Veröffentlichung
o Aktualisierung
o …
• Die eigentliche Entwicklung ist nur ein Teilprozess
• Andere Phasen benötigen in der Regel mehr Zeit
• Optimierung dieser Teilprozesse empfohlen
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
12. Optimierungspotentiale
• Einstellungen in Joomla!
o Aktuelle Version verwenden
o Keine Beispieldateien
o Joomla Debugger - Konsolenausgabe
• Session
• Profil-Informationen (Trigger)
• Speicherverbrauch
• Datenbankanfragen
o SEF URL deaktivieren
• Einstellungen in Entwicklungsumgebung
o PHP Error Level auf Maximum
o Limits hochsetzen
o PHP Debugger aktivieren
o Pro Projekt eine Joomla! Instanz
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
13. Optimierungspotentiale
• Core-Features nutzen
o Category
o ACL
o etc.
• Update-Server betreiben
o Akeeba Release System
• Flexibilität mit Trigger-Events
• Dokumentation schreiben
• UnitTests / Selenium
• Entwicklungen von anderen Entwicklern
o Anschauen, verstehen und lernen
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
14. Optimierungspotentiale
• Phing verwenden
o Build-System auf Apache Ant-Basis
o PHPUnit und SimpleTest-Unterstützung
o FTP, GIT & SVN-Support
o Plattform unabhängig
o Native Unterstützung in PhpStorm
• CodeSniffer verwenden
o Code-Style Überprüfung
o Einhaltung von Coding Standards
o Sauberer, konsistenter Code
o Wartbarkeit und Veständlichkeit
o http://docs.joomla.org/Joomla_CodeSniffer
o PhpStorm kann Code nach dem Standard formatieren
• https://github.com/betweenbrain/phpstorm-joomla-code-style
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
15. Geld verdienen
• Kostenlose Erweiterungen
o Spenden
o Popularität steigern
• Aufträge
o Subscription-Model
• Support
• Spenden
• Kommerzielle Erweiterungen
o Verkauf von Erweiterungen
o Anspruch der Benutzer hoch
• Supportaufwand
• Regelmäßige Updates
o Lizenz GPL erlauben
• Keine Verschlüsselung
• Weitergabe erlaubt
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
16. Feedback,
Diskussion & Kritik
• Feedback von Benutzern und Entwicklern
o Wichtig für eigene Weiterentwicklung
o Ideen sammeln, umsetzen
o Kontakt zu Entwicklern suchen und sich austauschen
• Diskussionen
o Meinungsaustausch
• Google Dev Group
• Joomla! Forum
• Lernen, mit Kritik umzugehen
o Konstruktive Kritik akzeptieren
o Kritik spornt zur Verbesserung an
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
17. Happy Coding! :-)
Danke für eure Aufmerksamkeit!
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel