этот абзац является частью книги «Zend Framework In Action».
SearchIndexer::setIndexDirectory(ROOT_DIR . '/var/search_index');
Places_Db_Table_Row_Observable::attachObserver('SearchIndexer');
Как видите, это просто случай установки каталога для хранения файлов индекса поиска и присоединенияКласс к списку наблюдателей в Places_Db_Table_Row_Observable с использованием имени класса.
Теперь у меня проблема!Я поместил этот код в файл начальной загрузки в методе runapp, но он не может распознать каталог, который я установил в начальной загрузке!
Он показывает эту ошибку
An error occurred exception 'Zend_Search_Exception' with message 'No index directory specified' in E:\xampp\php\PEAR\Zend\Search\Lucene.php:497
=======================================================
другой тип моего вопроса:
У меня есть этот код в файле начальной загрузки (метод runApp):
SearchIndexer::setIndexDirectory(ROOT_DIR.'/var/search_index');
Places_Db_Table_Row_Observable::attachObserver('SearchIndexer');
Я задаю путь к каталогу поискав классе SearchIndexer, но есть проблема!
Когда я использую приведенный ниже код в действии контроллера, он не может распознать каталог, который я установил в начальной загрузке!
код контроллера:
$index = Places_Search_Lucene::open(SearchIndexer::getIndexDirectory());
это код seachIndexer:
public static function setIndexDirectory($directory){
if(!is_dir($directory)) {
throw new Exception('Directory for SearchIndexer is invalid ('. $directory .')');
}
self::$_indexDirectory = $directory;
}
public static function getIndexDirectory(){
return self::$_indexDirectory;
}