mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-11 10:37:00 +01:00
51 lines
2.0 KiB
Plaintext
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>
|