我是新Zend Framework的狂热爱好者。到目前为止,我在之前的版本中完成了一个项目,我决定学习一个包含一个非常难以理解的部分的新项目。
我看过网络研讨会和youtube视频,我也阅读了文档,我只是通过阅读代码来尝试理解这个框架,但有些事情我无法弄清楚。
在网络研讨会上有很多关于EventManager
的信息,但由于我缺乏英语,我只是无法理解100%的演讲。
我知道事件管理器管理的事件很明显,但我真的不知道如何使用它:在其中一个网络研讨会中,他们提供了一些简单的例子,但他们没有解释在哪里放这个代码,是吗module.php
档案?或者其他一些地方如果你能给我一些解释的实际例子,那么我可以看到这一点。
接下来就是神秘的$e
作为Module.php
中大多数函数的参数传递,后面这样使用:$e->getApplication
或者我只是想知道这是什么{{1} }} 代表?它的实例是什么?接下来是它如何“自动”传递给这些函数?
另一个问题:在为每个名为$e
的模块指定的配置文件中,有很多东西。我明白了我理解它们的路线,但我无法弄清楚什么是可调用的和工厂。其中一个网络研讨会也解释如下:invokables是类的路径,工厂是可调用的函数或类(不记得)。关键是没问题,这在一些理论上是有道理的,但请给我一些深入解释的例子,那些工厂和可调用的东西来自我需要知道的其他东西。
另一件事是这些配置文件中有很多配置可能性。我在哪里可以找到有关这些文件中module.config.php
可能的内容的一些信息?
现在一切都是这样,但我仍然想问一些尚未解答的问题。如果有人能够帮助我,我真的很感激通过邮件与这个人通信。
好的,一个问题就解决了。关于神秘& e的那个,如果somene被提到这里是一个解决方案:
这个$ e变量实例取决于我们在module.php文件中使用的函数:
案例1:init() - > & e是模块管理器的实例 案例2:onBootstrap() - > & e是MvcEvent的一个实例 (如果还有其他情况我没找到,请告诉我们)
事情就是当事件被触发时调用那些方法,所以如果这些函数出现在我们的代码中,那些正在监听的听众会将这些函数传递给那些函数(这是我的简单逻辑所以请不要讨厌我)
还有其他问题需要回答......一旦生病了,我会告诉你一些有意义的答案
答案 0 :(得分:3)
在库存ZF2代码中,$e
始终是Zend\EventManager\EventManagerInterface
的实例。通常是Zend\EventManager\Event
或Zend\Mvc\MvcEvent
。
一个类'EventManager触发一个事件,导致调用侦听器回调。每个侦听器回调都传递一个Event
的实例,然后有一些有用的方法,特别是getTarget()
和getParams()
。 EventManagerInterface
的其他实例通常具有更专业的方法。 MvcEvent
特别提供与Mvc
组件相关的方法,例如getApplication()
,getRouter()
,getRequest()
和getResponse()
。
答案 1 :(得分:0)
您可以在“使用Zend Framework 2”一书中找到有关事件管理器,应用程序配置和MvcEvent的更多信息:http://leanpub.com/using-zend-framework-2