Files
yii/docs/guide/de/extension.integration.txt
2010-05-02 02:02:05 +00:00

51 lines
2.0 KiB
Plaintext

Verwenden von Fremdbibliotheken
===============================
Bei der Planung von Yii wurde sorgfältig darauf geachtet, dass andere
Bibliotheken leicht mit eingebunden werden können, um den Funktionsumfang zu
erweitern. Oft passiert es nämlich, dass es zu Namenskonflikten oder Problemen
mit Includes kommt, wenn man Fremdbibliotheken in einem Projekt verwenden
möchte. Yii's Klassen beginnnen daher alle mit dem Buchstaben `C` um solche
Namenskonflikte zu vermeiden. Außerdem verwendet Yii das [SPL
autoload](http://us3.php.net/manual/de/function.spl-autoload.php) Feature von
PHP. Damit klappt das Zusammenspiel mit Bibliotheken reibungslos, auch wenn diese
selbe Methode zum automatischen Laden ihrer Klassen verwenden oder den PHP
Include-Pfad verwenden.
Unten zeigen wir an einem Beispiel, wie man die
[Zend_Search_Lucene](http://www.zendframework.com/manual/en/zend.search.lucene.html)-Komponente
aus dem [Zend-Framework](http://www.zendframework.com) in einer Yii-Anwendung
verwendet.
Zunächst werden die Dateien des Zend-Frameworks in ein Verzeichnis
unterhalb von `protected/vendors` entpackt, wobei `protected` für das
[Anwendungsverzeichnis](/doc/guide/basics.application#application-base-directory)
steht. Überprüfen Sie, dass die Datei `protected/vendors/Zend/Search/Lucene.php`
vorhanden ist.
Fügen Sie dann die folgenden beiden Zeilen am Anfang einer Controllerklasse
ein:
~~~
[php]
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
~~~
Der obige Code bindet die Klassendatei `Lucene.php` ein. Da wir einen
relativen Pfad verwenden, müssen wir den Include-Pfad von PHP verändern, damit
die Datei gefunden werden kann. Dies erfolgt über den Aufruf von `Yii::import`
vor `require_once`.
Nachdem obige Änderungen vorgenommen wurden, kann man die Klasse `Lucene` in
einer Controlleraction wie folgt verwenden:
~~~
[php]
$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
~~~
<div class="revision">$Id: extension.integration.txt 1622 2009-12-26 20:56:05Z qiang.xue $</div>