我从Zend Translate那里得到了一个丑陋的例外:
致命错误:C:\ www \ libraries \ ZendFramework-1.10.5-minimal \ library \ Zend \ Translate \ Adapter \ Ini.php中未找到异常'Zend_Translate_Exception',消息'Ini文件'未找到数组' 54
的application.ini
resources.translate.registry_key =“Zend_Translate”
resources.translate.adapter =“ini”
resources.translate.data.directory = APPLICATION_PATH“/ languages”
resources.translate.options.scan =“目录”
resources.translate.locale =“en”
目录结构
应用\语言\
应用程序\语言\ EN \ component1.ini
应用程序\语言\ EN \ component2.ini
应用程序\语言\ EL \ component1.ini
应用\语言\ EL \ component2.ini
罪魁祸首 - Zend \ Translate \ Adapter \ Ini.php
protected function _loadTranslationData($data, $locale, array $options = array()) {
$this->_data = array();
if (!file_exists($data)) {
require_once 'Zend/Translate/Exception.php';
throw new Zend_Translate_Exception("Ini file '".$data."' not found");
}
}
此时var_dump($ data)返回*
array(1) {
["directory"] =>string(45) "C:\www\projects\helloworld\application/languages"
}*
我做错了什么?
答案 0 :(得分:2)
这只是因为你的$数据是“数组”,但应该是一个包含文件名的“字符串”。
为了检查字符串数组中是否存在文件,您应该遍历该数组:
foreach ($data as $file) {
if (!file_exists($file)) {
require_once 'Zend/Translate/Exception.php';
throw new Zend_Translate_Exception("Ini file '".$file."' not found");
}
}