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));
Signup or Login in order to comment.