我是一个热衷于新Zend框架的人。到目前为止,我在以前的版本中做了一个项目,我决定学习一个新的项目,其中包含了一个很难理解的部分。
我看过网络研讨会和youtube视频,我也读过文档,我试图通过阅读代码来理解这个框架,但是有一些事情我就是搞不懂。
在网络研讨会上有很多关于EventManager的信息,但是由于我缺乏英语,所以我无法百分之百地理解演讲内容。
我知道事件管理器管理事件,这是很明显的,但我并不真正知道如何使用它:在一个网络研讨会中,他们提供了一些简单的例子,但是他们没有解释把这些代码放在哪里,这是module.php文件吗?或者其他的地方,如果你能给我看一些实际的例子和解释,那么我就能明白其中的意义。
其次,神秘的$e传递给了Module.php中的大多数函数,后面的函数都是这样使用的:$e->getApplication或者其他什么东西,我只是想知道这个$e代表什么?这是什么的例子?下一步是如何将它“自动”传递给这些函数?
另一个问题是:在为每个模块指定的名为module.config.php的配置文件中,有很多东西。我明白路线的意义,但我不知道什么是可调用的和工厂的。在其中一个网络研讨会中也对此作了如下解释:可调用对象是类的路径,工厂是可调用的函数或类(无法记住)。这点很好,这在一些理论上是有意义的,但请给我提供一些例子和深入的解释,这些工厂和可调用者来自哪里,以及其他我需要知道的东西。
另一件事是,在这些配置文件中有很多配置的可能性。我在哪里可以找到一些关于在这些文件中可以使用什么"keys"=>"values"的信息?
这是目前的一切,但仍有一些问题我想问。如果有人能帮我,我真的很感激通过邮件与这个人通信。
好的,有一个问题解决了。关于神秘&e的那个,如果在这里被暗恋,那是一个解决方案:
这个$e变量实例取决于我们在module.php文件中使用的函数:
案例1: init() -> &e是模块管理器的实例2: onBootstrap() -> &e是MvcEvent的一个实例(如果还有其他情况,请告诉我们)
问题是,这些方法是在事件被触发时调用的&e是由侦听器传递给那些函数的,如果这些函数出现在我们的代码中(这是我的简单逻辑,所以请不要恨我)
还有其他问题要回答。一旦我想出一些有意义的答案,我会告诉你的。
发布于 2012-09-08 07:43:02
在股票ZF2代码中,$e始终是Zend\EventManager\EventManagerInterface的一个实例。通常它要么是Zend\EventManager\Event,要么是Zend\Mvc\MvcEvent。
类的EventManager触发一个事件,该事件导致调用侦听器回调。每个侦听器回调都被传递给一个Event的实例,该实例有一些有用的方法,特别是getTarget()和getParams()。EventManagerInterface的其他实例通常有更专门的方法。特别是MvcEvent有与Mvc组件相关的方法,例如getApplication()、getRouter()、getRequest()和getResponse()。
发布于 2013-09-11 13:44:55
您可以在“使用ZendFramework2”一书: EventManager:http://leanpub.com/using-zend-framework-2中找到更多关于tghe框架、应用程序配置和MvcEvent的信息。
https://stackoverflow.com/questions/12317052
复制相似问题