Yii este proiectat foarte atent pentru a permite integrarea usoara a bibliotecilor
third-party, pentru a extinde functionalitatea Yii.
Atunci cand folosim biblioteci third-party intr-un proiect, intampinam de obicei probleme
in legatura cu includerea fisierelor si denumirea claselor.
Deoarece toate clasele Yii sunt prefixate cu litera C
, este putin probabil
sa apara vreun conflict de denumire; si pentru ca Yii se bazeaza pe
SPL autoload
pentru a executa includerea fisierelor claselor, se poate descurca usor cu alte biblioteci
daca si ele folosesc acelasi feature de autoloading sau PHP include path pentru a include
fisierele claselor.
Mai jos folosim un exemplu pentru a arata cum sa folosim componenta Zend_Search_Lucene din platforma Zend in interiorul unei aplicatii Yii.
Mai intai, vom extrage fisierul platformei Zend intr-un director sub
protected/vendors
, presupunand ca protected
este directorul de baza al aplicatiei.
Verificam daca exista fisierul protected/vendors/Zend/Search/Lucene.php
.
Apoi, la inceputul fisierului cu clasa controller-ului, inseram urmatoarele linii:
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
Codul de mai sus include fisierul Lucene.php
. Deoarece folosim o cale relativa,
trebuie sa modificam calea PHP include path pentru ca acest fisier sa fie localizat corespunzator.
Acest lucru il facem prin apelarea Yii::import
inainte de require_once
.
O data ce toate de mai sus sunt pregatite, putem folosi clasa Lucene
intr-un action al unui controller in felul urmator:
$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
Signup or Login in order to comment.