Wer seine liebe Verwandtschaft sonntags erwarte, oder aber jemanden zum Geburtstag mit einem Kuchen überraschen will, der steht vor einer grundsätzlichen Entscheidung: Selber machen oder kaufen. Als ob das nicht schon schwer genug ist, steht beim selber backen die Frage im Raum, ob man eine Backmischung verwendet (was schneller geht) oder als frisch von Grund auf zubereitet.
Bei der Programmierung mit PHP stellt sich die gleiche Frage. Nimmt man eine Fertigmischung (einen so genannten Framework) oder erfindet man lieber das Rad komplett neu. Mit der Fertigmischung geht es auf jeden Fall schneller, aber schmeckt das Ergebnis denn auch?
Nun, wie beim Kuchen kommt es ganz darauf an, ob man die richtige Fertigmischung bzw. bei PHP den richtigen Framework verwendet. Vor dem Regal im Supermarkt stehend und die riesige Auswahl betrachtend hätten die meisten dann wohl gerne etwas Hilfe angesichts der Auswahl.
Bei Backmischung muss ich da leider passen, denn einige der Zutaten finde ich ziemlich bedenklich für die Gesundheit. Bei PHP-Frameworks sieht das schon etwas anders aus. Aus beruflichen Gründe habe ich mich in den letzten Wochen mit drei der wohl bekanntesten Vertretern beschäftigt (wobei nicht verschwiegen sollte, dass es noch wesentlich mehr PHP-Frameworks gibt):
Um das Fazit vorweg zu nehmen: Der ideale Framework ist immer der, mit dem man selber am besten zurecht kommt. In meinem Fall ist das der Zend Framework. Das liegt an einigen Besonderheiten, die dieser Framework hat. Wie die beiden anderen Vertreter auch, so unterstützt der ZF das Modell View Controller Konzept. Entscheidend ist dabei „unterstützt”, denn wer nicht will, muss nicht nach dem MVC-Konzept arbeiten (niemand wird zu seinem Glück gezwungen). Es ist daher möglich, einzelne Module des ZF zu verwenden. Wenn man zum Beispiel nur die Mail-Classe benötigt, dann bindet man nur diese ein.
Was mir persönlich auch gut gefallen hat, ist die Dokumentation. Im finde sie vom Stiel her deutlich zugänglicher als bei den anderen Frameworks. Nicht unerwähnt bleiben sollte auch, dass sich hinter dem ZF Zend (steckt schließlich im Namen) verbirgt – die Firma, die auch für PHP verantwortlich ist. Das dürfte wohl ein Grant dafür sein, dass der Framework keine Eintagsfliege sein wird.
<?php
/* ZEND CACHE BEISPIEL */
$ansi='3937514333';
require_once ZENDPATH.'Cache.php';
$frontendOptions = array(
'lifetime' => ZENDCACHE,
'automatic_serialization' => true
);
$backendOptions = array(
'cache_dir' => ZENDTEMP
);
$cache = Zend_Cache::factory('Output', 'File', $frontendOptions, $backendOptions);
if(!$cache->start(md5($ansi))) {
/* alle Anweisungen in diesem Block werden gecached */
$cache->end();
}
?>
Wo Licht ist, ist auch bekanntlich Schatten. Was derzeit (laut Roadmap ist es ein geplantes Feature) fehlt, sind Methoden zur automatischen Generierung von Code, wie sie zum Beispiel CakePHP bietet. Einer der Hauptkritikpunkte am ZF ist jedoch, dass er mit über 11 MB deutlich mehr auf die Wage bringt als die beiden anderen. Im Gegensatz zu ihnen basiert er aber vollständig auf PHP 5 und profitiert von den Möglichkeiten der aktuellen PHP Version.
3 Kommentare
Also ich muss dazu sagen, dass ich lange Zeit Prado benutzt und auch für Wei mitentwickelt habe. Prado ist ausgezeichnet, wenn es darum geht schnell eine Anwendung aufzuziehen, die eventbasiert reagieren soll. Dabei sind die ActiveControls eine absolut geniale Geschichte. Durch einfache Parametrisierung lassen sich die einzelnen Controls wie in Delphi oder ähnlichen Sprachen steuern und einstellen.
Wenn Du aber zukunftsträchtiger und mehr den „Industrial Way“ gehen willst hätte ich Dir auch das Zend Framework empfohlen. Ich habe es noch nie geschafft einen voll funktionsfähigen Prototypen in unter 30min mit I18N, Templating und Ajax zu implementieren. Da Zend das Framework zum quasi-Standard erheben will kannst du von einer rosigen Zukunft ausgehen. Auch die bisherigen Entwicklungen zeigen die Genialität des Frameworks auf. Es gibt nahezu alles, was das Herz begehrt bereits fertig oder als „Beta“ im Incubator.
Die Entscheidung ist wahrlich nicht einfach, aber ich setze derzeit bei Webapplikationen, wo es im Wesentlichen um einen schnellen Prototypen geht nur noch auf Zend. Soll es dagegen um eine schnelle hübsche Oberfläche gehen benutze ich Prado. Die Einarbeitung in mehr Frameworks ist meiner Meinung nach sehr schwierig und es unterscheiden sich alle Frameworks sicherlich nur in geringen Dingen.
Gruß Jalo
puhhhhh schwierige entscheidung das stimmt aber ich nehme auch am liebsten prado für obeflächen. ich finde das programm einfach klasse. mfg
Die guten Oberflächen haben mich dazu bewogen auch in diversen Projekten auf prado zu setzen, aber es ist halt auch für nicht alles die perfekte Lösung.