Upload
viktor-vogel
View
105
Download
0
Embed Size (px)
DESCRIPTION
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.
Citation preview
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! :-)