4

我是新 Zend 框架的狂热爱好者。到目前为止,我已经在以前的版本中完成了一个项目,我决定学习新的项目,其中包含对我来说非常难以理解的部分。

我看过网络研讨会和 youtube 视频,还阅读了文档,我试图通过阅读代码来理解这个框架,但我无法弄清楚的事情很少。

网络研讨会上有很多信息EventManager,但由于我缺乏英语,我无法 100% 理解演讲内容。

我知道事件管理器管理的事件非常明显,但我真的不知道如何使用它:在其中一个网络研讨会中,他们提供了一些简单的示例,但他们没有解释将这段代码放在哪里,是module.php文件吗?或者其他地方,如果您可以向我展示一些带有解释的实际示例,以便我了解重点。

接下来的事情是神秘$e的作为参数传递给大多数Module.php使用 after 的函数:$e->getApplication或者我只是想知道这$e代表什么?它是什么的实例?接下来是它是如何“自动”传递给这些函数的?

另一个问题:在为每个调用的模块指定的配置文件中,module.config.php有很多东西。我明白了路线的要点,但我不知道什么是可调用对象和工厂。它还在其中一个网络研讨会中进行了如下解释:invokables 是类的路径,工厂是可调用的函数或类(不记得了)。重点是好的,这在一些理论讨论中是有道理的,但请给我一些深入解释的例子,这些工厂和可调用对象来自哪里以及我需要知道的其他东西。

另一件事是这些配置文件中有很多配置可能性。我在哪里可以找到有关"keys"=>"values"这些文件中可能存在的信息的一些信息?

这就是现在的全部内容,但我仍然想问一些未回答的问题。如果有人能够帮助我,我将非常感谢通过邮件与此人通信。


好的,一个问题解决了。关于神秘的 &e 所以如果有人对此感兴趣,这是一个解决方案:

这个 $e 变量实例取决于我们在 module.php 文件中使用的函数:

案例 1:init() -> &e 是模块管理器的一个实例 案例 2:onBootstrap() -> &e 是 MvcEvent 的一个实例(如果我还没有找到其他案例,请告诉我们)

问题是当事件被触发时会调用这些方法,所以如果这些函数出现在我们的代码中,监听器会将 &e 传递给那些正在监听的函数(这是我的简单逻辑,所以请不要讨厌我)

还有其他问题要回答..一旦想出一些有意义的答案,我会告诉你的

4

2 回答 2

3

在股票 ZF2 代码中,$e始终是Zend\EventManager\EventManagerInterface. 通常它是一个Zend\EventManager\Event或一个Zend\Mvc\MvcEvent

一个类的 EventManager 触发一个事件,导致调用侦听器回调。每个侦听器回调都会传递一个 an 的实例Event,然后该实例具有一些有用的方法,特别是getTarget()and getParams()。其他实例EventManagerInterface通常有更专业的方法。MvcEvent特别是具有与组件相关的方法,Mvc例如getApplication()、和。getRouter()getRequest()getResponse()

于 2012-09-08T07:43:02.113 回答
0

您可以在“使用 Zend Framework 2”一书中找到有关 tghe EventManager、应用程序配置和 MvcEvent 的更多信息:http: //leanpub.com/using-zend-framework-2

于 2013-09-11T13:44:55.180 回答