我有一些模块的应用程序。其中一个是CourseSearch
。现在我想再添加一个SportsPartnerSearch
。由于这两个模块彼此非常相似,我只是“克隆”/复制CourseSearch
并将所有“课程”替换为“SportsPartner”(所有变体:$course
至$sportsPartner
,course-...phtml
到sports-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')in /path/to/project/vendor/zendframework/zendframework/library/Zend/Loader/ClassMapAutoloader.php 在第140行
为什么以奇怪的方式构建文件的路径:/path/to/project/module/
SportsPartnerSearch
//src/
CourseSearch
/View/Helper/CourseSearchForm.php
?我在哪里犯了错误?
一些其他信息。
由于课程搜索模块中的wron路径为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
中的SportsPartnerSearch\Module#getViewHelperConfig()
以同样的方式实现,并且尚未调用。
答案 0 :(得分:1)
您是否生成了类图?检查CourseSearch和SportsPartnerSearch模块中的autoload_classmap.php
文件。我猜你还有一个旧的类图。我认为问题隐藏在类图中,因为Zend的ClassMapAutoloader中存在错误,而不是标准的自动加载器。
您可以使用ZF2中提供的类映射生成器生成新的类映射(假设您通过Composer加载它):
cd module/SportsPartnerSearch
../../vendor/bin/classmap_generator.php
这将在SportsPartnerSearch模块中生成一个新的类图文件。