Im Internet wird derzeit viel über das Zend Framework im Zusammenhang mit Symfony geredet. Zum Einen werden beide Frameworks miteinander verglichen, zum Anderen sollen sie gemeinsam genutzt werden. Einen Vergleich finde ich nicht wirklich sinnvoll. Symfony ist meiner Meinung nach ein reines MVC Framework. Das Zend Framework ist mehr eine Ansammlung von Komponenten und deshalb mehr ein Komponenten Framework. Aber allein über dieses Thema könnte man einen eigenen Artikel schreiben.
Wenn man das Zend Framework als Komponenten Framework sieht, ist der Schritt nicht groß, es als Bibliothek in einer Symfony Anwendung zu nutzen. Anders rum macht es für mich aus den oben genannten Gründen wenig Sinn. Das Integrieren des ZFs ist eigentlich spielend einfach, muss man doch nur den Autoloader an geeigneter Stelle instanziieren. Ob man dazu gleich ein neues Projekt starten sollte weiss ich nicht so recht. Ich habe einfach mal ein kleines Tutorial dazu geschrieben (Symfony Version 1.4):
Ich gehe davon aus, dass ihr bereits ein Symfony Projekt angelegt habt, sonst sollte ihr euch hier schlau machen. Ich habe in meinen Projekten die Symfony Dateien immer als svn Checkout unter “lib/vendor/symfony” liegen. Das Gleiche mache ich nun mit dem Zend Framework und checke die aktuelle Version aus:
svn co <ZF_SVN_URL> ./lib/vendor/zf
Um aus dem Branch 1.10 zu verwednen, kann man diese Adresse nutzen. Wenn man die Dateien geladen hat, bearbeitet man “config/ProjectConfiguration.class.php” und fügt folgende Zeilen in der setup Funktion hinzu:
public function setup()
{
... bereits vorhandener Quelltext ...
// diese Zeilen hinzufügen
//ZendFramework integration
$zf_path = sfConfig::get('sf_lib_dir').'/vendor/zf/library';
set_include_path($zf_path.PATH_SEPARATOR.get_include_path());
require_once($zf_path.'/Zend/Loader/Autoloader.php');
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Namespace_');
}
Als erstes wird der Pfad des ZF Verzeichnisses gespeichert und der Includepfad gesetzt. Dann wird der Autoloader geladen, instanziiert und der Namespace registriert.
Man könnte diesen Quelltext auch in einer ApplicationConfiguration hinzufügen, dann könnte man das ZendFramework aber auch nur in dieser Application verwenden. Jetzt muss man nur noch einen Clear Cache machen und alles sollte funktionieren:
./symfony cc
Nun kann man in seiner Anwendung einfach auf die Klassen des Zend Frameworks zugreifen.
Letzte Kommentare