我有我的公司的自定義庫的Zend框架應用程序。在我們的開發環境中,我在自定義庫下創建的資源在Windows中加載得很好。我只是想今天早上這個移動到Linux操作系統中,我發現了以下錯誤:bootstrap資源加載不同在Linux與Windows
Fatal error: Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "errorLogger" not found' in /home/nick/Repos/myfirstzend.com/includes/library/Zend/Application/Bootstrap/BootstrapAbstract.php on line 694
我有我的插件路徑在我的引導的構造函數中設置這樣的:
$this->setOptions(array(
'pluginPaths' => array('Company_Application_Resource' => 'Company/Application/Resource')
));
然後我試圖通過以下陣列(在不同的_init方法引導內):
$resources['errorLogger'] = array(
'stream' => array(
'writerName' => 'db',
'writerParams' => array(
'db' => array(
'dbname' => APPLICATION_PATH . '/logs/errorLog.sqlite'
)
)
)
);
以下方法:
$this->registerPluginResource($resourceName, $resourceOptions);
其中$resourceName
是該初始數組('errorLogger')的關鍵,$resourceOptions
是該關鍵字處的數組。
我有ErrorLogger.php
根據library/Company/Application/Resource/
和類名稱是class Company_Application_Resource_ErrorLogger extends Zend_Application_Resource_Log
。
我不知所措。任何人看到我做錯了什麼?
是否有一系列var_dumps可以解決這個問題?我在這裏不知所措。編號:Bootstrap code。
我在Win/Linux和沒有找到文件之間遇到的最大問題是目錄名稱區分大小寫。 PHP哈希也是區分大小寫的。這可能是一個問題嗎? '$ resources ['errorLogger']'=>'$ resources ['ErrorLogger']'?我沒有想到會因爲Win上的PHP應該有相同的錯誤,但這是一個猜測。 – jmbertucci
jmbertucci是對的,99%這是NAME的問題 – opHASnoNAME
如果我放入'$ resources ['ErrorLogger']' – tubaguy50035