SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Auswahlkriterien für PHP Frameworks

3. PHP Unconference, Hamburg
12. und 13. September 2009

10 Auswahlkriterien
für PHP Frameworks
Begriffsdefinitionen, Kleine Marktübersicht,
Allgemeine und spezielle Kriterien zur Auswahl,
Gründe für Eigenentwicklung
Präsentiert von:
Ralf Eggert
Geschäftsführer Travello GmbH

12./13.09.2009

3. PHP Unconference

1 von 21
Auswahlkriterien für PHP Frameworks

Bitte jederzeit zwischendurch Eure
Fragen und Anregungen stellen!
Mit den Beschimpfungen bitte
bis zum Ende warten!
Danke!

12./13.09.2009

3. PHP Unconference

2 von 21
Auswahlkriterien für PHP Frameworks

Wer bin ich?
●

Ralf Eggert, Jahrgang 1972, Dipl. WInf (FH),
Geschäftsführer Travello GmbH

●

Entwickelt in PHP seit 1999, hat auch in PHP 3 gestümpert

●

Entwickelt mit dem Zend Framework seit 2006

●

Regelmäßiger Autor für das PHP Magazin seit 2007

●

Autor des Buches „Das Zend Framework - Von den
Grundlagen bis zur fertigen Anwendung“ erschienen 2009
(www.zendframeworkbuch.de)

●

Bloggt unter www.ralfeggert.de über PHP usw.

●

Twittert unter twitter.com/Frille

12./13.09.2009

3. PHP Unconference

3 von 21
Auswahlkriterien für PHP Frameworks

Was gilt als PHP Framework?
●

●

●

Klassensammlungen (PHPLIB, PHP Classes)
Komponentensammlungen (PEAR, eZ Components, Zend
Framework)
„Full-Stack“ Frameworks und Ruby-on-Rails Klone (Code
Igniter, CakePHP, Symfony, Seagull, Agavi)

12./13.09.2009

3. PHP Unconference

4 von 21
Auswahlkriterien für PHP Frameworks

Welche PHP Frameworks gibt es?

12./13.09.2009

3. PHP Unconference

5 von 21
Auswahlkriterien für PHP Frameworks

Wie wählt man ein Framework aus?
●

Viele Wege führen nach Rom

●

Eine Hand voll ausprobieren und eines auswählen

●

Im Internet nach „unabhängigen“ Vergleichen suchen

●

Featurelisten durchwühlen

●

Freunde und Kollegen fragen

●

Einfach eines aus dem Bauch heraus auswählen

●

Oder sich einen Kriterienkatalog für die Auswahl erstellen

12./13.09.2009

3. PHP Unconference

6 von 21
Auswahlkriterien für PHP Frameworks

1. Kriterium: Aktualität
●

Wie aktuell ist das neueste stabile Release?

●

Wie häufig gibt es neue Releases?

●

Wie sieht die Release Historie aus?

●

Gibt es feste Release-Zyklen?

●

Seit wann wird das Framework entwickelt?

●

Gibt es eine Roadmap?

12./13.09.2009

3. PHP Unconference

7 von 21
Auswahlkriterien für PHP Frameworks

2. Kriterium: Verbreitung
●

●

Gibt es Informationen zu den Downloadzahlen (leider nur
selten verfügbar)?
Gibt es bekannte Referenzen, die das Framework
einsetzen?

●

Anzahl Treffer in Suchmaschinen (Google, Yahoo)

●

Google Pagerank?

●

●

Ist in Zukunft eher von einer steigenden Verbreitung
auszugehen?
Gibt es Stellenangebote von Unternehmen, welche
Erfahrung im Framework voraussetzen?

12./13.09.2009

3. PHP Unconference

8 von 21
Auswahlkriterien für PHP Frameworks

3. Kriterium: Dokumentation
●

●

●

Wie umfangreich und aktuell ist die mitgelieferte
Dokumentation?
Gibt es eine Kommentarfunktion in der Dokumentation mit
weiteren Hinweisen der Anwender?
Gibt es viele Tutorials, Anleitungen und dokumentierte
Best Practices? Wie aktuell sind diese?

●

Gibt es auch eine API Dokumentation zum Download?

●

Gibt es Bücher zum Framework (Gedruckt, E-Books)?

12./13.09.2009

3. PHP Unconference

9 von 21
Auswahlkriterien für PHP Frameworks

4. Kriterium: Qualitätssicherung
●

Gibt es Programmierrichtlinien, an die sich alle Entwickler
des Frameworks halten müssen?

●

Werden Unit-Tests zur Qualitätssicherung eingesetzt?

●

Werden diese mitgeliefert?

●

Wie hoch ist die Testabdeckung?

●

Wird sogar testgetrieben entwickelt?

●

Wird das Schreiben von Unit-Tests für eine auf dem
Framework basierende Anwendung unterstützt?

12./13.09.2009

3. PHP Unconference

10 von 21
Auswahlkriterien für PHP Frameworks

5. Kriterium: Entwickler
●

●

●

●

●

Ist es ein reines Open-Source Projekt, das von vielen
Freiwilligen gestützt wird?
Oder steht eine Firma im Hintergrund, welche die
Entwicklung vorantreibt / unterstützt?
Ist die Anzahl der Kernentwickler bekannt? Wie viele?
Bieten die Kernentwickler / die Firma auch kommerziellen
Support an?
Ist das Framework ein Fork oder wurde es schon mal
geforkt („brain drain“)?

12./13.09.2009

3. PHP Unconference

11 von 21
Auswahlkriterien für PHP Frameworks

6. Kriterium: Community
●

Wie aktiv sind die Mailinglisten und Foren zum
Framework?

●

Wie schnell bekommt man Hilfe auf eine Frage?

●

Wie ist der Umgangston in den Mailinglisten und Foren?

●

Gibt es Blogs, welche aktuelle Informationen sammeln und
veröffentlichen?

12./13.09.2009

3. PHP Unconference

12 von 21
Auswahlkriterien für PHP Frameworks

7. Kriterium: Lizenz
●

Unter welcher Lizenz wird das Framework veröffentlicht?

●

Gibt es auch eine kommerzielle Lizenz?

●

Passt diese Lizenz zu den eigenen Anforderungen für die
Nutzung des Frameworks?

●

12./13.09.2009

3. PHP Unconference

13 von 21
Auswahlkriterien für PHP Frameworks

8. Kriterium: Technik
●

●

●

●

●

Wird noch das veraltete PHP 4 unterstützt oder werden die
Stärken von PHP 5 ausgekostet?
Passen die technischen Anforderungen des Frameworks
auf die vorhandenen technischen Voraussetzungen?
Lässt sich das Framework einfach erweitern?
Werden umfangreiche Konfigurationsdateien benötigt oder
gibt es Konventionen, die man einhalten muss / kann?
Besteht die eigene Anwendung aus Monsterklassen oder
lassen sich die Elemente (Controller, Aktionen, Models,
Views, Formulare, etc.) fein trennen?

12./13.09.2009

3. PHP Unconference

14 von 21
Auswahlkriterien für PHP Frameworks

9. Kriterium: Bugs
●

Ist das Framework bugfrei? (kleiner Scherz)

●

Wie viele Bugs wurden gemeldet / gelöst?

●

Verhältnis gemeldete und bereinigte Bugs?

●

Beispielzahlen von Mitte August 2009:
–

Agavi (gemeldet 1065, bereinigt 995, Ratio 93,43%)

–

CakePHP (gemeldet 6528, bereinigt 5880, Ratio 90,07%)

–

eZ Components (gemeldet 1355, bereinigt 1215, Ratio 89,67%)

–

Symfony (gemeldet 6814, bereinigt 5367, Ratio 78,76%)

–

Zend Framework (gemeldet 7551, bereinigt 5736, Ratio 75,96%)

12./13.09.2009

3. PHP Unconference

15 von 21
Auswahlkriterien für PHP Frameworks

10. Kriterium: Features
●

●

●

●

●

Endlich! Die Features
Bietet das Framework alle Features / Komponenten, die in
der eigenen Anwendung gebraucht werden?
Sind die fehlenden Features / Komponenten zeitnah (in
den nächsten Monaten) geplant?
Können die Anwender auch eigene Features /
Komponenten vorschlagen / anbieten?
Wie einfach lassen sich externe Komponenten integrieren,
z.B. Smarty, Doctrine, Webservices?

12./13.09.2009

3. PHP Unconference

16 von 21
Auswahlkriterien für PHP Frameworks

Zusammenfassung Auswahlkriterien
●

●

●

●

Natürlich lassen sich nur schwer alle Fragen für alle
Frameworks beantworten!
Kriteriumkatalog ermöglicht aber, schnell eine Vielzahl an
Frameworks auszuschließen!
Damit kann man sich auf die wesentlichen Frameworks
konzentrieren!
Ergänzt wird die Auswertung dann durch Ausprobieren und
Testen der Frameworks

12./13.09.2009

3. PHP Unconference

17 von 21
Auswahlkriterien für PHP Frameworks

10 Gründe gegen Frameworks I
●

●

●

●

●

Bevor ich mich in fremden Programmcode einarbeite, schreibe
ich das schneller selbst.
PHP Frameworks sind voller Bugs, man schaue nur auf die
langen Listen mit Bugfixes bei jedem Release.
Da der Programmcode des PHP Frameworks öffentlich
zugänglich ist, mache ich meine Anwendung unsicher.
Schließlich können die Hacker den Programmcode des
Frameworks auch einsehen.
Das Framework XYZ ist völlig überladen, ich brauche nur 2
oder 3 der 40 Komponenten.
Das Framework XYZ ist nicht vollständig, mir fehlen 2 bis 3
Komponenten!

12./13.09.2009

3. PHP Unconference

18 von 21
Auswahlkriterien für PHP Frameworks

10 Gründe gegen Frameworks II
●

●

●

●

●

●

Ich kenne gerne den gesamten Programmcode im Detail, so
dass ich lieber alles selber schreibe!
Was mache ich, wenn das PHP Framework nicht mehr weiter
entwickelt wird, weil die Hauptentwickler keine Zeit mehr
haben?
Für das Framework gibt es dauernd neue Releases, bin ja nur
noch am aktualisieren.
Wenn mein Kunde mitbekommt, dass ich nicht alles selber
programmiert habe, kürzt er mir das Budget!
Ich schreibe mein eigenes PHP Framework, um zu lernen!
Quelle: http://www.phphatesme.com/blog/wtf/10-grunde-gegenden-einsatz-von-php-frameworks/

12./13.09.2009

3. PHP Unconference

19 von 21
Auswahlkriterien für PHP Frameworks

Fragen?
Meinungen?
Wutausbrüche?

12./13.09.2009

3. PHP Unconference

20 von 21
Auswahlkriterien für PHP Frameworks

Danke für Eure Aufmerksamkeit!
Ralf Eggert
r.eggert@travello.com

12./13.09.2009

3. PHP Unconference

21 von 21

Weitere ähnliche Inhalte

Andere mochten auch

PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introductionmaexpower
 
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Sebastian Schally
 
High Security PHP Applications
High Security PHP ApplicationsHigh Security PHP Applications
High Security PHP Applicationsguest0e6d5e
 
Deploying PHP applications with Phing
Deploying PHP applications with PhingDeploying PHP applications with Phing
Deploying PHP applications with PhingMichiel Rook
 
IPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedIPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedRalf Eggert
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web designHenning Schmidt
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesMark Roden
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLKerstin Puschke
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with PhingMichiel Rook
 
The Skeleton And Joints Wk3
The Skeleton And Joints Wk3The Skeleton And Joints Wk3
The Skeleton And Joints Wk3MrHall
 
PHP Optimization
PHP OptimizationPHP Optimization
PHP Optimizationdjesch
 
Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)djesse
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHPThomas Burgard
 
WordPress und die Sprachen
WordPress und die SprachenWordPress und die Sprachen
WordPress und die Sprachenfrankstaude
 

Andere mochten auch (20)

PHP_Codesniffer
PHP_CodesnifferPHP_Codesniffer
PHP_Codesniffer
 
PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introduction
 
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
 
Baustein 07 grundlagen-html-css-php
Baustein 07 grundlagen-html-css-phpBaustein 07 grundlagen-html-css-php
Baustein 07 grundlagen-html-css-php
 
High Security PHP Applications
High Security PHP ApplicationsHigh Security PHP Applications
High Security PHP Applications
 
Deploying PHP applications with Phing
Deploying PHP applications with PhingDeploying PHP applications with Phing
Deploying PHP applications with Phing
 
IPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 ReloadedIPC 2015 Zend Framework 3 Reloaded
IPC 2015 Zend Framework 3 Reloaded
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web design
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQL
 
Camptothecin
CamptothecinCamptothecin
Camptothecin
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
The Skeleton And Joints Wk3
The Skeleton And Joints Wk3The Skeleton And Joints Wk3
The Skeleton And Joints Wk3
 
PHP Optimization
PHP OptimizationPHP Optimization
PHP Optimization
 
Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHP
 
AJAX
AJAXAJAX
AJAX
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
 
Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2
 
WordPress und die Sprachen
WordPress und die SprachenWordPress und die Sprachen
WordPress und die Sprachen
 

Ähnlich wie Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg

Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenDie wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenYUHIRO
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Teambrandts
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?Johann-Peter Hartmann
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Jürg Stuker
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenAptly GmbH
 
Plone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesPlone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesAlexander Loechel
 
Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsGünther Haslbeck
 
9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-AnwendungenRalf Eggert
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréVerein FM Konferenz
 
Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)Peter_Majmesku
 
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 deadlinesMarkus Zapke-Gründemann
 
Joomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte VielfaltJoomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte VielfaltSven Schultschik
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindChristian Heilmann
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Florian Bosselmann
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzunginovex GmbH
 

Ähnlich wie Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg (20)

Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenDie wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
Plone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesPlone im Kontext des WCMS Marktes
Plone im Kontext des WCMS Marktes
 
Ueberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web ApplicationsUeberlegungen Projektmanagement Web Applications
Ueberlegungen Projektmanagement Web Applications
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen9 Tipps für die Modernisierung von PHP-Anwendungen
9 Tipps für die Modernisierung von PHP-Anwendungen
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
 
Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)Drupal Basics (7-8) Vortrag (01.2016)
Drupal Basics (7-8) Vortrag (01.2016)
 
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
 
Joomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte VielfaltJoomla! Overrides - Die zu wenig genutzte Vielfalt
Joomla! Overrides - Die zu wenig genutzte Vielfalt
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behind
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
 

Mehr von Ralf Eggert

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteRalf Eggert
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionRalf Eggert
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnRalf Eggert
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?Ralf Eggert
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die ReiseRalf Eggert
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface MeetupRalf Eggert
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill MaintenanceRalf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Ralf Eggert
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Ralf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for HospitalityRalf Eggert
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Ralf Eggert
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteRalf Eggert
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitRalf Eggert
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaRalf Eggert
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendRalf Eggert
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationRalf Eggert
 

Mehr von Ralf Eggert (20)

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heute
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 Edition
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickeln
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die Reise
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup
 
Welcome Bixby
Welcome BixbyWelcome Bixby
Welcome Bixby
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill Maintenance
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for Hospitality
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice Projekte
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und Wirklichkeit
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon Alexa
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein Backend
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next Generation
 

Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg

  • 1. Auswahlkriterien für PHP Frameworks 3. PHP Unconference, Hamburg 12. und 13. September 2009 10 Auswahlkriterien für PHP Frameworks Begriffsdefinitionen, Kleine Marktübersicht, Allgemeine und spezielle Kriterien zur Auswahl, Gründe für Eigenentwicklung Präsentiert von: Ralf Eggert Geschäftsführer Travello GmbH 12./13.09.2009 3. PHP Unconference 1 von 21
  • 2. Auswahlkriterien für PHP Frameworks Bitte jederzeit zwischendurch Eure Fragen und Anregungen stellen! Mit den Beschimpfungen bitte bis zum Ende warten! Danke! 12./13.09.2009 3. PHP Unconference 2 von 21
  • 3. Auswahlkriterien für PHP Frameworks Wer bin ich? ● Ralf Eggert, Jahrgang 1972, Dipl. WInf (FH), Geschäftsführer Travello GmbH ● Entwickelt in PHP seit 1999, hat auch in PHP 3 gestümpert ● Entwickelt mit dem Zend Framework seit 2006 ● Regelmäßiger Autor für das PHP Magazin seit 2007 ● Autor des Buches „Das Zend Framework - Von den Grundlagen bis zur fertigen Anwendung“ erschienen 2009 (www.zendframeworkbuch.de) ● Bloggt unter www.ralfeggert.de über PHP usw. ● Twittert unter twitter.com/Frille 12./13.09.2009 3. PHP Unconference 3 von 21
  • 4. Auswahlkriterien für PHP Frameworks Was gilt als PHP Framework? ● ● ● Klassensammlungen (PHPLIB, PHP Classes) Komponentensammlungen (PEAR, eZ Components, Zend Framework) „Full-Stack“ Frameworks und Ruby-on-Rails Klone (Code Igniter, CakePHP, Symfony, Seagull, Agavi) 12./13.09.2009 3. PHP Unconference 4 von 21
  • 5. Auswahlkriterien für PHP Frameworks Welche PHP Frameworks gibt es? 12./13.09.2009 3. PHP Unconference 5 von 21
  • 6. Auswahlkriterien für PHP Frameworks Wie wählt man ein Framework aus? ● Viele Wege führen nach Rom ● Eine Hand voll ausprobieren und eines auswählen ● Im Internet nach „unabhängigen“ Vergleichen suchen ● Featurelisten durchwühlen ● Freunde und Kollegen fragen ● Einfach eines aus dem Bauch heraus auswählen ● Oder sich einen Kriterienkatalog für die Auswahl erstellen 12./13.09.2009 3. PHP Unconference 6 von 21
  • 7. Auswahlkriterien für PHP Frameworks 1. Kriterium: Aktualität ● Wie aktuell ist das neueste stabile Release? ● Wie häufig gibt es neue Releases? ● Wie sieht die Release Historie aus? ● Gibt es feste Release-Zyklen? ● Seit wann wird das Framework entwickelt? ● Gibt es eine Roadmap? 12./13.09.2009 3. PHP Unconference 7 von 21
  • 8. Auswahlkriterien für PHP Frameworks 2. Kriterium: Verbreitung ● ● Gibt es Informationen zu den Downloadzahlen (leider nur selten verfügbar)? Gibt es bekannte Referenzen, die das Framework einsetzen? ● Anzahl Treffer in Suchmaschinen (Google, Yahoo) ● Google Pagerank? ● ● Ist in Zukunft eher von einer steigenden Verbreitung auszugehen? Gibt es Stellenangebote von Unternehmen, welche Erfahrung im Framework voraussetzen? 12./13.09.2009 3. PHP Unconference 8 von 21
  • 9. Auswahlkriterien für PHP Frameworks 3. Kriterium: Dokumentation ● ● ● Wie umfangreich und aktuell ist die mitgelieferte Dokumentation? Gibt es eine Kommentarfunktion in der Dokumentation mit weiteren Hinweisen der Anwender? Gibt es viele Tutorials, Anleitungen und dokumentierte Best Practices? Wie aktuell sind diese? ● Gibt es auch eine API Dokumentation zum Download? ● Gibt es Bücher zum Framework (Gedruckt, E-Books)? 12./13.09.2009 3. PHP Unconference 9 von 21
  • 10. Auswahlkriterien für PHP Frameworks 4. Kriterium: Qualitätssicherung ● Gibt es Programmierrichtlinien, an die sich alle Entwickler des Frameworks halten müssen? ● Werden Unit-Tests zur Qualitätssicherung eingesetzt? ● Werden diese mitgeliefert? ● Wie hoch ist die Testabdeckung? ● Wird sogar testgetrieben entwickelt? ● Wird das Schreiben von Unit-Tests für eine auf dem Framework basierende Anwendung unterstützt? 12./13.09.2009 3. PHP Unconference 10 von 21
  • 11. Auswahlkriterien für PHP Frameworks 5. Kriterium: Entwickler ● ● ● ● ● Ist es ein reines Open-Source Projekt, das von vielen Freiwilligen gestützt wird? Oder steht eine Firma im Hintergrund, welche die Entwicklung vorantreibt / unterstützt? Ist die Anzahl der Kernentwickler bekannt? Wie viele? Bieten die Kernentwickler / die Firma auch kommerziellen Support an? Ist das Framework ein Fork oder wurde es schon mal geforkt („brain drain“)? 12./13.09.2009 3. PHP Unconference 11 von 21
  • 12. Auswahlkriterien für PHP Frameworks 6. Kriterium: Community ● Wie aktiv sind die Mailinglisten und Foren zum Framework? ● Wie schnell bekommt man Hilfe auf eine Frage? ● Wie ist der Umgangston in den Mailinglisten und Foren? ● Gibt es Blogs, welche aktuelle Informationen sammeln und veröffentlichen? 12./13.09.2009 3. PHP Unconference 12 von 21
  • 13. Auswahlkriterien für PHP Frameworks 7. Kriterium: Lizenz ● Unter welcher Lizenz wird das Framework veröffentlicht? ● Gibt es auch eine kommerzielle Lizenz? ● Passt diese Lizenz zu den eigenen Anforderungen für die Nutzung des Frameworks? ● 12./13.09.2009 3. PHP Unconference 13 von 21
  • 14. Auswahlkriterien für PHP Frameworks 8. Kriterium: Technik ● ● ● ● ● Wird noch das veraltete PHP 4 unterstützt oder werden die Stärken von PHP 5 ausgekostet? Passen die technischen Anforderungen des Frameworks auf die vorhandenen technischen Voraussetzungen? Lässt sich das Framework einfach erweitern? Werden umfangreiche Konfigurationsdateien benötigt oder gibt es Konventionen, die man einhalten muss / kann? Besteht die eigene Anwendung aus Monsterklassen oder lassen sich die Elemente (Controller, Aktionen, Models, Views, Formulare, etc.) fein trennen? 12./13.09.2009 3. PHP Unconference 14 von 21
  • 15. Auswahlkriterien für PHP Frameworks 9. Kriterium: Bugs ● Ist das Framework bugfrei? (kleiner Scherz) ● Wie viele Bugs wurden gemeldet / gelöst? ● Verhältnis gemeldete und bereinigte Bugs? ● Beispielzahlen von Mitte August 2009: – Agavi (gemeldet 1065, bereinigt 995, Ratio 93,43%) – CakePHP (gemeldet 6528, bereinigt 5880, Ratio 90,07%) – eZ Components (gemeldet 1355, bereinigt 1215, Ratio 89,67%) – Symfony (gemeldet 6814, bereinigt 5367, Ratio 78,76%) – Zend Framework (gemeldet 7551, bereinigt 5736, Ratio 75,96%) 12./13.09.2009 3. PHP Unconference 15 von 21
  • 16. Auswahlkriterien für PHP Frameworks 10. Kriterium: Features ● ● ● ● ● Endlich! Die Features Bietet das Framework alle Features / Komponenten, die in der eigenen Anwendung gebraucht werden? Sind die fehlenden Features / Komponenten zeitnah (in den nächsten Monaten) geplant? Können die Anwender auch eigene Features / Komponenten vorschlagen / anbieten? Wie einfach lassen sich externe Komponenten integrieren, z.B. Smarty, Doctrine, Webservices? 12./13.09.2009 3. PHP Unconference 16 von 21
  • 17. Auswahlkriterien für PHP Frameworks Zusammenfassung Auswahlkriterien ● ● ● ● Natürlich lassen sich nur schwer alle Fragen für alle Frameworks beantworten! Kriteriumkatalog ermöglicht aber, schnell eine Vielzahl an Frameworks auszuschließen! Damit kann man sich auf die wesentlichen Frameworks konzentrieren! Ergänzt wird die Auswertung dann durch Ausprobieren und Testen der Frameworks 12./13.09.2009 3. PHP Unconference 17 von 21
  • 18. Auswahlkriterien für PHP Frameworks 10 Gründe gegen Frameworks I ● ● ● ● ● Bevor ich mich in fremden Programmcode einarbeite, schreibe ich das schneller selbst. PHP Frameworks sind voller Bugs, man schaue nur auf die langen Listen mit Bugfixes bei jedem Release. Da der Programmcode des PHP Frameworks öffentlich zugänglich ist, mache ich meine Anwendung unsicher. Schließlich können die Hacker den Programmcode des Frameworks auch einsehen. Das Framework XYZ ist völlig überladen, ich brauche nur 2 oder 3 der 40 Komponenten. Das Framework XYZ ist nicht vollständig, mir fehlen 2 bis 3 Komponenten! 12./13.09.2009 3. PHP Unconference 18 von 21
  • 19. Auswahlkriterien für PHP Frameworks 10 Gründe gegen Frameworks II ● ● ● ● ● ● Ich kenne gerne den gesamten Programmcode im Detail, so dass ich lieber alles selber schreibe! Was mache ich, wenn das PHP Framework nicht mehr weiter entwickelt wird, weil die Hauptentwickler keine Zeit mehr haben? Für das Framework gibt es dauernd neue Releases, bin ja nur noch am aktualisieren. Wenn mein Kunde mitbekommt, dass ich nicht alles selber programmiert habe, kürzt er mir das Budget! Ich schreibe mein eigenes PHP Framework, um zu lernen! Quelle: http://www.phphatesme.com/blog/wtf/10-grunde-gegenden-einsatz-von-php-frameworks/ 12./13.09.2009 3. PHP Unconference 19 von 21
  • 20. Auswahlkriterien für PHP Frameworks Fragen? Meinungen? Wutausbrüche? 12./13.09.2009 3. PHP Unconference 20 von 21
  • 21. Auswahlkriterien für PHP Frameworks Danke für Eure Aufmerksamkeit! Ralf Eggert r.eggert@travello.com 12./13.09.2009 3. PHP Unconference 21 von 21