Yii är omsorgsfullt konstruerat på så sätt att tredjepartsbibliotek utan
svårighet kan integreras för att ytterligare utöka Yii:s funktionalitet. När
tredjepartsbibliotek används i ett projekt, stöter utvecklare ofta på problem
rörande namngivning av klasser och inkludering av filer. Eftersom alla Yii:s
klasser har namn som föregås av bokstaven C
, är det mindre risk för att
problem kring namngivning av klasser uppstår; och eftersom Yii förlitar sig på
SPL autoload för
inkludering av klassfiler, kan det friktionsfritt samexistera med andra
bibliotek om dessa använder samma autoladdningsfiness, alternativt
PHP-inkluderingssökväg för att inkludera klassfiler.
Nedan används ett exempel för att illustrera hur man i en Yii-applikation kan använda komponenten Zend_Search_Lucene från Zend-ramverket.
Extrahera först distributionsfilen innehållande Zend-ramverket till en katalog
under protected/vendors
, förutsatt att protected
är applikationens
rotkatalog.
Kontrollera att filen protected/vendors/Zend/Search/Lucene.php
existerar.
Sätt därefter in följande rader i början av kontrollerns klassfil:
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
Ovanstående kod inkluderar klassfilen Lucene.php
. Eftersom en relativ sökväg
används, behöver PHP:s inkluderingssökväg ändras så att filen kan lokaliseras
korrekt. Detta gör man genom att anropa Yii::import
innan require_once
.
När väl ovanstående grundinställning är på plats, kan Lucene
-klassen användas
i en kontrolleråtgärd (action), på följande sätt:
$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
Signup or Login in order to comment.