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.