SlideShare ist ein Scribd-Unternehmen logo
Tipps und Tricks 
für Erweiterungs-entwickler 
JoomlaDay Germany – Köln - 2014 
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Happy Coding! :-) 
Danke für eure Aufmerksamkeit! 
JoomlaDay Germany 2014 - Tipps und Tricks für Erweiterungsentwickler – Viktor Vogel - @viktorvogel

Weitere ähnliche Inhalte

Andere mochten auch

Der Schwimmring
Der SchwimmringDer Schwimmring
Der Schwimmring
guest7dc5e80
 
Presentaciòn CARI
Presentaciòn CARIPresentaciòn CARI
Presentaciòn CARI
Marcelo Montes
 
Acosta yunuen u3_aa3
Acosta yunuen u3_aa3Acosta yunuen u3_aa3
Acosta yunuen u3_aa3
Yunae
 
Marktinfo Arabische Länder 2015
Marktinfo Arabische Länder 2015Marktinfo Arabische Länder 2015
Marktinfo Arabische Länder 2015
Austrian National Tourist Office
 
Resultados pruebas saber once
Resultados pruebas saber onceResultados pruebas saber once
Resultados pruebas saber once
andresm1018
 
Sistema Solar
Sistema SolarSistema Solar
Sistema Solar
Jenrry33
 
APARATO CIRCULATORIO
APARATO CIRCULATORIOAPARATO CIRCULATORIO
APARATO CIRCULATORIO
Anaid
 
Konzeptum Kundenportale
Konzeptum KundenportaleKonzeptum Kundenportale
Konzeptum Kundenportale
KONZEPTUM GmbH
 
Informatica
InformaticaInformatica
Informatica
JoSs Haro
 
Web 2.0 M. Elena Baeza
Web 2.0 M. Elena BaezaWeb 2.0 M. Elena Baeza
Web 2.0 M. Elena Baeza
Elena Baeza Arranz
 
Unidad 8
Unidad 8Unidad 8
Unidad 8
BrayanYDRB
 
Presentation2
Presentation2Presentation2
Presentation2
Hawk8855
 
Antropología pedagógica (OBSERVACIÓN)
Antropología pedagógica (OBSERVACIÓN)Antropología pedagógica (OBSERVACIÓN)
Antropología pedagógica (OBSERVACIÓN)
TaTy Torrez
 
238757726 tarea-de-informatica-pptx
238757726 tarea-de-informatica-pptx238757726 tarea-de-informatica-pptx
238757726 tarea-de-informatica-pptx
BrendaColli
 
El ABC de seo y posicionamiento web en buscadores
 El ABC  de seo y posicionamiento web en buscadores El ABC  de seo y posicionamiento web en buscadores
El ABC de seo y posicionamiento web en buscadores
utopianovertone11
 
fichas de políticas 3 periodo
fichas de políticas 3 periodofichas de políticas 3 periodo
fichas de políticas 3 periodo
Andres Sebastian Zambrano
 
GOOGLE DRIVE
GOOGLE DRIVEGOOGLE DRIVE
GOOGLE DRIVE
Anthony Narvaez
 
MODALIDADES DEL COMERCIO ELECTRONICO
MODALIDADES DEL COMERCIO ELECTRONICOMODALIDADES DEL COMERCIO ELECTRONICO
MODALIDADES DEL COMERCIO ELECTRONICO
La Mivi Noguera
 
Etiketten - welche Materialien gibt es
Etiketten - welche Materialien gibt esEtiketten - welche Materialien gibt es
Etiketten - welche Materialien gibt es
ID-Austria
 
interclase 2014 IE sagrados corazones
interclase 2014 IE sagrados corazones interclase 2014 IE sagrados corazones
interclase 2014 IE sagrados corazones
camilasilva181996
 

Andere mochten auch (20)

Der Schwimmring
Der SchwimmringDer Schwimmring
Der Schwimmring
 
Presentaciòn CARI
Presentaciòn CARIPresentaciòn CARI
Presentaciòn CARI
 
Acosta yunuen u3_aa3
Acosta yunuen u3_aa3Acosta yunuen u3_aa3
Acosta yunuen u3_aa3
 
Marktinfo Arabische Länder 2015
Marktinfo Arabische Länder 2015Marktinfo Arabische Länder 2015
Marktinfo Arabische Länder 2015
 
Resultados pruebas saber once
Resultados pruebas saber onceResultados pruebas saber once
Resultados pruebas saber once
 
Sistema Solar
Sistema SolarSistema Solar
Sistema Solar
 
APARATO CIRCULATORIO
APARATO CIRCULATORIOAPARATO CIRCULATORIO
APARATO CIRCULATORIO
 
Konzeptum Kundenportale
Konzeptum KundenportaleKonzeptum Kundenportale
Konzeptum Kundenportale
 
Informatica
InformaticaInformatica
Informatica
 
Web 2.0 M. Elena Baeza
Web 2.0 M. Elena BaezaWeb 2.0 M. Elena Baeza
Web 2.0 M. Elena Baeza
 
Unidad 8
Unidad 8Unidad 8
Unidad 8
 
Presentation2
Presentation2Presentation2
Presentation2
 
Antropología pedagógica (OBSERVACIÓN)
Antropología pedagógica (OBSERVACIÓN)Antropología pedagógica (OBSERVACIÓN)
Antropología pedagógica (OBSERVACIÓN)
 
238757726 tarea-de-informatica-pptx
238757726 tarea-de-informatica-pptx238757726 tarea-de-informatica-pptx
238757726 tarea-de-informatica-pptx
 
El ABC de seo y posicionamiento web en buscadores
 El ABC  de seo y posicionamiento web en buscadores El ABC  de seo y posicionamiento web en buscadores
El ABC de seo y posicionamiento web en buscadores
 
fichas de políticas 3 periodo
fichas de políticas 3 periodofichas de políticas 3 periodo
fichas de políticas 3 periodo
 
GOOGLE DRIVE
GOOGLE DRIVEGOOGLE DRIVE
GOOGLE DRIVE
 
MODALIDADES DEL COMERCIO ELECTRONICO
MODALIDADES DEL COMERCIO ELECTRONICOMODALIDADES DEL COMERCIO ELECTRONICO
MODALIDADES DEL COMERCIO ELECTRONICO
 
Etiketten - welche Materialien gibt es
Etiketten - welche Materialien gibt esEtiketten - welche Materialien gibt es
Etiketten - welche Materialien gibt es
 
interclase 2014 IE sagrados corazones
interclase 2014 IE sagrados corazones interclase 2014 IE sagrados corazones
interclase 2014 IE sagrados corazones
 

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

Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutsch
Robert Deutz
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
Mayflower GmbH
 
Das Microsoft AppStudio (beta)
Das Microsoft AppStudio (beta)Das Microsoft AppStudio (beta)
Das Microsoft AppStudio (beta)
Peter Nowak
 
Frontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTSFrontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTS
Peter Kraume
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Tommy Ziegler
 
IntelliJ für Flex
IntelliJ für FlexIntelliJ für Flex
IntelliJ für Flex
Simon Tiffert
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
Gregor Goldbach
 
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Mayflower GmbH
 
Deployment
DeploymentDeployment
Deployment
Christian Händel
 
HTML5-Features
HTML5-FeaturesHTML5-Features
HTML5-Features
Francesco Schwarz
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
Ralf Eggert
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework  for perfectionists with deadlinesDjango - The Web framework  for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
Markus Zapke-Gründemann
 
Creative codingday 2_10012014_vor
Creative codingday 2_10012014_vorCreative codingday 2_10012014_vor
Creative codingday 2_10012014_vor
JeongHo Park
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
FotiosKaramitsos
 
AG Softwaretechnik
AG SoftwaretechnikAG Softwaretechnik
AG Softwaretechnik
Roland M
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
Christian Erhardt
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
Dirk Ginader
 
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision AusbildungenGratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
Eduvision Ausbildungen
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
FotiosKaramitsos
 
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
NETWAYS
 

Ähnlich wie Tipps & Tricks für Erweiterungsentwickler - JoomlaDay Deutschland 2014 - Köln (20)

Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutsch
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
Das Microsoft AppStudio (beta)
Das Microsoft AppStudio (beta)Das Microsoft AppStudio (beta)
Das Microsoft AppStudio (beta)
 
Frontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTSFrontend Formulare in TYPO3 8 LTS
Frontend Formulare in TYPO3 8 LTS
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
 
IntelliJ für Flex
IntelliJ für FlexIntelliJ für Flex
IntelliJ für Flex
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...
 
Deployment
DeploymentDeployment
Deployment
 
HTML5-Features
HTML5-FeaturesHTML5-Features
HTML5-Features
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework  for perfectionists with deadlinesDjango - The Web framework  for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Creative codingday 2_10012014_vor
Creative codingday 2_10012014_vorCreative codingday 2_10012014_vor
Creative codingday 2_10012014_vor
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
AG Softwaretechnik
AG SoftwaretechnikAG Softwaretechnik
AG Softwaretechnik
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision AusbildungenGratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
Gratis Wordpress Webinar - Web-Blogsystem Einführung mit Eduvision Ausbildungen
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)Foreman: Klassen und Parametrisierung in Puppet (Webinar vom 20. Mai 2016)
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