Zend framework2 zend framework 2添加新控制器
为了在模块中添加新的控制器并通过URL调用它,我们需要在哪些文件中进行更改 有没有一种方法可以让我们添加一个新的控制器文件,并通过url调用它,而无需更改任何其他配置文件Zend framework2 zend framework 2添加新控制器,zend-framework2,Zend Framework2,为了在模块中添加新的控制器并通过URL调用它,我们需要在哪些文件中进行更改 有没有一种方法可以让我们添加一个新的控制器文件,并通过url调用它,而无需更改任何其他配置文件 因为在每次添加或编辑控制器文件时更改配置文件将非常繁琐。要创建新控制器,您至少需要 创建控制器类 确保您有一条符合您的目的的匹配路线(您可以选择现有路线,也可以为特殊目的创建一条新路线) 在模块的module.config.php中创建一个controllers.invokables条目 没有办法绕过这三个简单的步骤。我不
因为在每次添加或编辑控制器文件时更改配置文件将非常繁琐。要创建新控制器,您至少需要
- 创建控制器类
- 确保您有一条符合您的目的的匹配路线(您可以选择现有路线,也可以为特殊目的创建一条新路线)
- 在模块的
中创建一个module.config.php
条目controllers.invokables
没有办法绕过这三个简单的步骤。我不明白为什么在添加控制器时修改
module.config.php
会有问题——这就是配置文件的用途。包括打开、保存和关闭,这大约需要10-15秒。您不会创建数百个控制器,是吗?我要对Daniel在“确保您有一条符合您目的的匹配路线…”中所说的话进行一点澄清。出于我的目的,我试图调整到module/Application/src/Application/Controller/IndexController.php和module/Application/src/Application/Controller/ProfileController.php的路由,但是我很难解决ProfileController的任何问题。还不清楚ZF2是否可以在单个模块中容纳多个控制器。我想肯定是的,的确如此!鉴于上述两个控制器,这就是我如何在module/Application/config/module.config.php中构建我的“路由器”数组的方法
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
'application' => array(
'type' => 'Literal',
'options' => array(
'route' => '/application',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
'profile' => array(
'type' => 'literal',
'options' => array(
'route' => '/profile',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Profile',
'action' => 'index',
),
),
),
),
),
这也是我的“控制器”可调用项在modules.config.php中成功后的样子
'controllers' => array(
'invokables' => array(
'Application\Controller\Index' => 'Application\Controller\IndexController',
'Application\Controller\Profile' => 'Application\Controller\ProfileController'
),
),
来自Zend框架2参考 我们向应用程序通知我们希望在应用程序中使用的控制器 应用这是为了防止有人请求任何服务 ServiceManager在试图破坏应用程序时知道。这个 dispatcher使用一个特殊的作用域容器,该容器只会 专门向其注册的控制器,作为 可调用类或通过工厂调用 src: 添加控制器与布线无关,但切线方向除外 由于开发人员希望能够在 网址。这是一个安全问题,因为我们对待控制器 作为服务 这是(a)明确控制器是什么的努力 可用,并且(b)默认情况下是安全的
正如Matthew Weier O'Phinney所说。我不会这么说。我没有使用过ZF1,但是ZF2有很多好的方面,这是ZF1所没有的(根据其他人的意见)。使用ZF1已经五年了。zf2-非常非常好:)只要您熟悉OOP和MVC,zf2就比ZF1更易于使用。只要你只看模块和设置。这需要对配置是如何完成的有相当多的了解,但这正是网络研讨会和文档的目的:)在大规模应用程序中,是的,我将创建数百个控制器。想想ERP。很多很多运动部件。我已经使用ZF1好几年了,ZF2在很多方面都更好。Zend框架的重点是企业系统。灵活性和简单性之间存在着相反的关系。如果您想要一些新手友好且易于学习的东西,请查看RubyonRails。然而,如果你要制作一个每天有2000多人使用的大型web系统,Zend框架已经涵盖了你。Zend 2真的不太可行。。。我不应该为了增加一个控制器而经历那样的困难。就我的意见。@user1815615,完美的解释:)+1