JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Tipps und Tricks für Erweiterungs-
entwickler
JoomlaDay Germany – Köln - 2014
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
• Arbeite seit 2005 mit Joomla!o Aktive Teilnahme in der Community
o Bug Squash Team
o Core Contributions
• Privates Joomla! Projekto 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
Vorstellung
• Komponenteno Vollständige Anwendungen innerhalb der Installation
o Eigene Administrationsoberfläche
o Ausgabe der Erweiterung über Views im Hauptbereich
• Pluginso Werden getriggert und arbeiten vorwiegend im Hintergrund
o Sind unterteilt in verschiedene Typen (Content, System...)
o Manipulieren Daten, geben diese nicht aus
• Moduleo Einblendung auf vorgegebenen Templatepositionen
o Ausgabe von Inhalten auf diesen Positionen (Widget)
o Arbeiten meist eng mit Komponenten zusammen (Login-Modul)
• Templateso Definieren die Ausgabe der Website – bieten Platzhalter für Inhalte
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Erweiterungstypen
• Joomla! Frameworko Modulares PHP-Framework
o Sammlung von Klassen und Funktionen
o MVC Muster
• Model - Datenmodell
• View - Präsentation
• Controller – Programmsteuerung
• Joomla! CMS APIo Übersicht http://api.joomla.org/
o Ordner libraries
• cms
• joomla
• legacy
• fof
• ....
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Framework – API
• JFactoryo Factory-Muster – je eine Instanz für Objekte
• JFactory::getUser(); // JUser
• JFactory::getDocument(); // JDocument
• JFactory:: getDBO(); // Jdatabase
• ... (siehe libraries/joomla/factory.php)
• JDatabaseo Kommunikation mit der Datenbank
• JInputo Verarbeitung von Abfragen / Requests
• JDocumento Dokumentverarbeitung (HTML, JSON, XML etc.)
• JHtml, JHttp, JMail, JUri, JRoute, JText
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Wichtige Klassen
• Rapid Application Development / Framework On Framework
• Häufig benötigte Funktionalitäten mit wenigen Zeilen Code verwendeno 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. FOFo 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
RAD / FOF
• Lokaler Webservero PHP + Xdebug und MySQL
o Windows: XAMPP, WampServer, EasyPHP
o Mac: MAMP
o Linux: LAMP
• Texteditoro Notepad++, Sublime
o Integrierte Entwicklungsumgebung: PhpStorm, Netbeans
• Webbrowsero Firefox + Firebug
• Zusätzliche Softwareo FTP-Programm: FileZilla
• http://docs.joomla.org/Setting_up_your_workstation_for_Joomla_development
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Entwicklungsumgebung
• Entwicklung stets lokal durchführeno Schneller, aufgrund fehlender Dateiübertragung
o Server-Einstellungen individuell setzbar
• Versionsverwaltung nutzeno Git auf eigenem Server
o Dienste wie GitHub, GitLab
• Debuggen ist einfachero Xdebug
• Projekt in IDE anlegeno Zugriff auf API / Klassen
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Lokaler Webserver
• Guten Editor für schnelle Bearbeitungo Encoding beachten
o Keine Auszeichnungssprache (z.B.: Word)
o Notepad++
• IDE – Integrierte Entwicklungsumgebungo 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 OpenSourceEntwickler), NetBeans (Java - GPL)
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Editoren
• Der Entwicklungsprozess einer Erweiterungo 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
Workflow
• 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 Entwicklungsumgebungo 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
Optimierungspotentiale
• Core-Features nutzeno Category
o ACL
o etc.
• Update-Server betreibeno Akeeba Release System
• Flexibilität mit Trigger-Events
• Dokumentation schreiben
• UnitTests / Selenium
• Entwicklungen von anderen Entwicklerno Anschauen, verstehen und lernen
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Optimierungspotentiale
• Phing verwendeno 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 verwendeno 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
Optimierungspotentiale
• Kostenlose Erweiterungeno Spenden
o Popularität steigern
• Aufträge
o Subscription-Model
• Support
• Spenden
• Kommerzielle Erweiterungeno 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
Geld verdienen
• Feedback von Benutzern und Entwicklerno Wichtig für eigene Weiterentwicklung
o Ideen sammeln, umsetzen
o Kontakt zu Entwicklern suchen und sich austauschen
• Diskussioneno Meinungsaustausch
• Google Dev Group
• Joomla! Forum
• Lernen, mit Kritik umzugeheno Konstruktive Kritik akzeptieren
o Kritik spornt zur Verbesserung an
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Feedback, Diskussion & Kritik
Danke für eure Aufmerksamkeit!
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
Happy Coding! :-)