Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln

Post on 26-Jan-2015

105 views 0 download

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.

transcript

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! :-)