我创建了一个带有控制器的模块。我的模块名为“App\Module\Foo”,控制器名为“App\Controller\Foo”。我已经application.config.php
通过使用Zend\Mvc\Application::init(require 'config/application.config.php')->run();
. (我已经设置了一个自定义启动器,与 ZF2 Skeleton 非常相似。)
'router' => array(
'routes' => array(
'Foo\Module\Index' => array(
'type' => 'segment',
'options' => array(
'route' => '[/]',
'constraints' => array(
'controller' => 'Foo\Controller\Index'
)
)
)
)
)
据我了解,此配置会将所有到 Web 根目录的请求重定向到Foo\Controller\Index
控制器。这真的必须在Foo\Module\Index
数组键内还是我可以用我认为适合该路线的任何名称替换键?(只要它是唯一的)如果这是真的,这是否意味着我可以拥有 1 个具有多条路线的大模块?
另外,它怎么知道在那个控制器上调用什么方法?在 Zend 参考中,似乎没有代理接受一些参数(如操作)并将其发送到控制器内的正确方法。似乎 ZF2 神奇地知道要调用什么方法。
另一件困扰我的事情是框架如何知道视图的位置?官方参考说它会寻找{controller name}/{action name}
但它会在哪里寻找,如果我没有动作变量怎么办?
当我认为模型基本上只是一个可以使用的数据结构(如用户类或权限类)而表单是一个处理通过 HTML 表单发送的实际 POST 数据的类时,我也是对的吗?