我有一些模塊的應用程序。其中之一是CourseSearch
。現在我想添加一個,SportsPartnerSearch
。由於這兩個模塊彼此非常相似,我只需「克隆」/複製CourseSearch
並將所有「課程」替換爲「SportsPartner」(在所有變體中:$course
至$sportsPartner
,course-...phtml
至sports-partner-...phtml
等),以便編輯第二步的邏輯。現在,我得到以下錯誤:爲什麼ZF2自動加載機會錯誤地建立路徑?
Warning: require_once(/path/to/project/module/SportsPartnerSearch//src/CourseSearch/View/Helper/CourseSearchForm.php): failed to open stream: No such file or directory in /path/to/project/vendor/zendframework/zendframework/library/Zend/Loader/ClassMapAutoloader.php on line 140
Fatal error: require_once(): Failed opening required '/path/to/project/module/SportsPartnerSearch//src/CourseSearch/View/Helper/CourseSearchForm.php' (include_path='.:/usr/share/php:/usr/share/pear') in /path/to/project/vendor/zendframework/zendframework/library/Zend/Loader/ClassMapAutoloader.php on line 140
爲什麼文件路徑被建立在這樣奇怪的方式:/path/to/project/module/
SportsPartnerSearch
//src/
CourseSearch
/View/Helper/CourseSearchForm.php
?我在哪裏犯了一個錯誤?
一些附加信息。
該課程由於CourseSearch模塊中的wron路徑爲CourseSearch\View\Helper\CourseSearchForm
而無法找到。可以發現,當我停用包含類SportsPartnerSearch\View\Helper\SportsPartnerSearchForm
的新模塊SportsPartnerSearch
時。
的CourseSearchForm
視圖助手實例化在CourseSearchForm\Module
class Module {
public function getViewHelperConfig() {
return array(
'factories' => array(
'courseSearchForm' => function($serviceManager) {
$helper = new View\Helper\CourseSearchForm(array('render' => true, 'redirect' => false));
// ERROR. This code is not executed anymore.
$helper->setViewTemplate('course-search/course-search/course-search-form');
$courseSearchForm = $serviceManager->getServiceLocator()->get('CourseSearch\Form\CourseSearchForm');
$helper->setCourseSearchForm($courseSearchForm);
return $helper;
}
)
);
}
}
而且在佈局文件名爲:
echo $this->courseSearchForm();
的SportsPartnerSearch\View\Helper\SportsPartnerSearchForm
實例化以後,以同樣的方式在SportsPartnerSearch\Module#getViewHelperConfig()
且尚未叫。
非常感謝!有用!它現在也可以在沒有生成classmaps的情況下運行。昨天我清理了我的'autoload_classmap.php'文件,沒有用它們嘗試,但是錯誤仍然存在。現在我再次生成了classmaps(它工作),並再次清理地圖,現在它也基於命名空間。所以,我想,昨天我忘了清理一個classmap。 – automatix