0 follower

Использование сторонних библиотек

Yii изначально спроектирован таким образом, чтобы использование сторонних библиотек с целью расширения функционала Yii, происходило легко и непринужденно. Очень часто при использовании в работе сторонних библиотек, разработчики сталкиваются с проблемами именования классов и подключения файлов. Поскольку все классы Yii имеют префикс C, то вероятность возникновения конфликтов имен существенно ниже. А благодаря тому, что для подключения файлов Yii использует автозагрузку SPL, работа с библиотеками, использующими для подключения файлов классов этот механизм автозагрузки или же относительный путь подключения в РНР (PHP include path), становится существенно приятнее.

Ниже приведен пример, иллюстрирующий использование в Yii-приложении компонента Zend_Search_Lucene из Zend framework.

Первым делом, распаковываем релиз с Zend framework в папку protected/vendors, где protected - это базовая директория приложения. Убедитесь в том, что файл protected/vendors/Zend/Search/Lucene.php существует.

Далее, в самом начале класса контроллера, добавляем строку:

Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');

Код, приведенный выше, подключает файл класса Lucene.php. Поскольку используется относительный путь, то необходимо изменить относительный путь подключения в РНР (PHP include path) таким образом, чтобы приложение могло найти файл. Делается это путем вызова метода Yii::import перед require_once.

После того, как проделано все описанное, можно использовать класс Lucene в действиях контроллера следующим образом:

$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));