ZF2 で使用される基本的なサンプル アプリケーションでは、IndexController は次のようにコーディングされます。
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController
{
public function indexAction()
{
return new ViewModel();
}
}
単純な return ステートメントがあるだけで、の内容index.phtml
が自動的に出力に含まれます。
index.phtml
参照されているのを見た唯一の場所は\module\Application\config\module.config.php
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
'doctype' => 'HTML5',
'not_found_template' => 'error/404',
'exception_template' => 'error/index',
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),
'template_path_stack' => array(
__DIR__ . '/../view',
),
),
この行をコメントアウトしてみました:
//'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
しかし、index.phtml はまだ出力に含まれています。
それで問題は、なぜそれが含まれているのですか?舞台裏でどのような魔法が起こって、まだ含まれているのでしょうか?
ドキュメントで見つけることができなかった、ZF2 によって処理されるいくつかの基本的な自動マッピングが欠落しているように思えます。しかし、自動マッピングがある場合、なぜその行が に存在するのmodule.config.php
でしょうか?