在引导程序中设置静态方法的默认值

| 本段是《 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;
}
    
已邀请:
您的
getIndexDirectory
函数不会返回路径,因此
Places_Search_Lucene::open
将失败。
setIndexDirectory
可能无法设置路径。做一些调试。 也许您在zend autoloader加载它之前在引导程序中使用了该类。您在哪里执行此操作? 尝试在使用前手动加载该类:
Zend_Loader::loadClass(\'Path_To_SearchIndexer\',
    array(
        \'/home/production/mylib\',
    )
);
有关zend loader的文档:http://framework.zend.com/manual/en/zend.loader.load.html     

要回复问题请先登录注册