0 follower

Användning av tredjepartsbibliotek

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));