我有一个带有一些模块的应用程序。其中之一是CourseSearch
。现在我想再添加一个,SportsPartnerSearch
. 由于这两个模块彼此非常相似,我只是“克隆”/复制了CourseSearch
所有“Course”并将所有“Course”替换为“SportsPartner”(所有变体:$course
to $sportsPartner
、course-...phtml
tosports-partner-...phtml
等),以便在第二个中编辑逻辑步。现在我收到以下错误:
警告:require_once(/path/to/project/module/SportsPartnerSearch//src/CourseSearch/View/Helper/CourseSearchForm.php):无法打开流:/path/to/project/vendor/zendframework 中没有这样的文件或目录/zendframework/library/Zend/Loader/ClassMapAutoloader.php 在第 140 行
致命错误:require_once(): 无法打开所需的 '/path/to/project/module/SportsPartnerSearch//src/CourseSearch/View/Helper/CourseSearchForm.php' (include_path='.:/usr/share/php:/usr /share/pear') 在第 140 行的 /path/to/project/vendor/zendframework/zendframework/library/Zend/Loader/ClassMapAutoloader.php
为什么以这种奇怪的方式构建文件的路径:?我在哪里做错了?/path/to/project/module/
SportsPartnerSearch
//src/
CourseSearch
/View/Helper/CourseSearchForm.php
一些额外的信息。
由于错误路径位于 CourseSearch 模块中,因此无法找到该类CourseSearch\View\Helper\CourseSearchForm
。SportsPartnerSearch
当我停用包含该类的新模块时,可以找到它SportsPartnerSearch\View\Helper\SportsPartnerSearchForm
。
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
以相同的方式在 the 中实例化并且SportsPartnerSearch\Module#getViewHelperConfig()
尚未调用。