いくつかのモジュールを含むアプリケーションがあります。それらの1つはですCourseSearch
。ここで、さらに 1 つ追加したいと思いSportsPartnerSearch
ます。これら 2 つのモジュールは互いに非常に似ているため、2 番目のロジックを編集するために、単純に「クローン」/コピーしてCourseSearch
、すべての「コース」を「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') /path/to/project/vendor/zendframework/zendframework/library/Zend/Loader/ClassMapAutoloader.php の 140 行目
ファイルへのパスがこのような奇妙な方法で構築されているのはなぜですか: ? どこで間違いをしましたか?/path/to/project/module/
SportsPartnerSearch
//src/
CourseSearch
/View/Helper/CourseSearchForm.php
いくつかの追加情報。
CourseSearch\View\Helper\CourseSearchForm
間違ったパスがCourseSearch モジュールにあるために見つからないクラス。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()
まだ呼び出されていません。