Php 为什么Zend Framework操作控制器有后缀?

Php 为什么Zend Framework操作控制器有后缀?,php,zend-framework,naming-conventions,controller,action,Php,Zend Framework,Naming Conventions,Controller,Action,我是一个全新的Zend Framework用户,但我对PHP或编程并不陌生。我一直在阅读代码,试图掌握所有东西是如何组合在一起的。我一直在研究的一个部分是如何在系统中自动加载类。我可以看到: Zend_应用程序_引导引用Zend/Application/Bootstrap.php Zend_Controller_Action引用Zend/Controller/Action.php 。。。等等 本质上,转换到目录分隔符并自动加载 我不明白的是(尽管我确信有一个很好的理由)为什么动作控制器不遵循

我是一个全新的Zend Framework用户,但我对PHP或编程并不陌生。我一直在阅读代码,试图掌握所有东西是如何组合在一起的。我一直在研究的一个部分是如何在系统中自动加载类。我可以看到:

  • Zend_应用程序_引导引用Zend/Application/Bootstrap.php
  • Zend_Controller_Action引用Zend/Controller/Action.php
  • 。。。等等
本质上,转换到目录分隔符并自动加载

我不明白的是(尽管我确信有一个很好的理由)为什么动作控制器不遵循这个约定

  • IndexController引用应用程序/controllers/IndexController.php
为什么不:

  • Application\u Controllers\u Index->/Application/Controllers/Index.php
  • Controllers\u Index->/Application/Controllers/Index.php
?

我猜给类一个后缀可以减少系统中某些地方的复杂性,从第一眼看zend框架,一切都是经过深思熟虑的——我无法想象没有好的理由引入约定

有谁能解释为什么控制器要加前缀,或者更好的方法是让我看看内核中的一些代码,这些代码显示了为什么控制器必须加前缀


谢谢:)

控制器的文件名和类名应该有后缀控制器。Zend在类名中看到后缀,并理解它是一个控制器。他在controllers文件夹中找到该类。

控制器的文件名和类名称应具有后缀控制器。Zend在类名中看到后缀,并理解它是一个控制器。他在controllers文件夹中找到了这个类。

我自己对Zend Framework还不太熟悉,但从我所知道的情况来看,考虑到Zend Framework目前的运行方式,没有很好的理由这样做。我不确定这是否是事情开始时的遗留问题,或者只是相关人员的偏好,但我听说ZF 2.0将改变这一点。

我自己对Zend Framework还比较陌生,但从我所能看出,考虑到Zend Framework目前的现状,没有什么好的理由这样做。我不确定这是否是事情开始时的遗留问题,或者只是相关人员的偏好,但我听说ZF 2.0将改变这一点。

老实说,我不完全确定这些约定最初为何会被开发出来。我怀疑它们与当时其他框架的发展有关——特别是,RoR的流行程度正在飙升,这就是它们定义应用程序资源的方式。(在最初的MVC迭代时,我刚从Zend开始;我在2006年秋天做了一次重写,但其目标是保持它与以前开发的内容一致,同时提供更好、更灵活的功能。)

我们继续介绍了Paragim,因为它强化了应用程序/层次结构下的所有项都是资源,而不是库代码的想法。这一点尤其重要,因为在这个树中可能有非类代码(查看脚本、布局等)


然而,这确实带来了一些麻烦——资源加载器的引入表明我们有一个需要解决的问题。资源加载器基本上解决了症状,但不一定是根本原因(糟糕的约定)。在我们处理ZF2时,我们将再次讨论这一点。如果您有兴趣发表您的想法,我邀请您在zf贡献者邮件列表上发表您的想法。

老实说,我不完全确定这些约定最初是为什么制定的。我怀疑它们与当时其他框架的发展有关——特别是,RoR的流行程度正在飙升,这就是它们定义应用程序资源的方式。(在最初的MVC迭代时,我刚从Zend开始;我在2006年秋天做了一次重写,但其目标是保持它与以前开发的内容一致,同时提供更好、更灵活的功能。)

我们继续介绍了Paragim,因为它强化了应用程序/层次结构下的所有项都是资源,而不是库代码的想法。这一点尤其重要,因为在这个树中可能有非类代码(查看脚本、布局等)


然而,这确实带来了一些麻烦——资源加载器的引入表明我们有一个需要解决的问题。资源加载器基本上解决了症状,但不一定是根本原因(糟糕的约定)。在我们处理ZF2时,我们将再次讨论这一点。如果您有兴趣发表您的想法,我邀请您在zf贡献者邮件列表上发表您的想法。

当然可以知道控制器是否是控制器,因为它在控制器目录中?当然可以知道控制器是否是控制器,因为它在控制器目录中?嗨,Matthew,非常感谢你的回答——我很想找到一个关于大会的技术理由。很高兴这是您正在研究的关于ZF2的内容,我一定会在邮件列表上发布一些想法。嗨,Matthew,非常感谢您的回答--我很想找到一个关于该公约的技术原因。很高兴这是你正在研究的关于ZF2的东西,我一定会在邮件列表上发表一些想法。