Questions tagged «interceptor»

3
Magento 2:互动之前/前后/之后的插件
在Magento 2中,当您创建“周围”插件时 public function aroundRenderResult( \Magento\Framework\Controller\ResultInterface $subject, \Closure $proceed, ResponseHttp $response ) { //... $proceed($response); //... } 您可以继续进行下一个插件,最终通过调用/调用传入的$proceed方法来调用实际的原始方法。这是一种常见的设计模式,通常在PHP Frameworks中间件实现中看到。 但是,它确实给实现细节带来了一些混乱。特别 如果除之外aroundPlugin,对象/类还定义了before或after插件,它们何时相对于周围的插件链触发? 即所有之前的方法会在所有周围的插件方法触发之前触发吗?或插件,然后将只火最终,实际前实际方法火灾? 我要跟踪的具体问题是,当Magento处于全页缓存模式时,我似乎无法获得与Magento 2前端控制器的调度方法相连的插件。全页缓存由不调用的环绕插件操作$proceed($response)。我已经尝试研究这些插件的一些代码,并且发现系统很难在不知道插件打算如何工作的情况下进行推理。 即- 在此特定实例中,开发文档页面上的描述似乎不准确。尚不清楚文档是否错误,或者这是最近引入的错误,是否是边缘情况,或者我的插件配置是否错误。 是否有人通过直接观察或文化知识知道这种优先次序应该如何起作用?

1
Magento 2:var / generation中的Interceptors文件是什么?
所以我注意到其中的一些Interceptor.php文件var/generation 我知道此文件夹包含为以下内容即时创建的生成的类: 工厂工厂 代理人 外挂程式 我假设拦截器文件链接到插件文件,但是有时我不知道这些文件是如何生成的。例如,我有,var/generation/Magento/Framework/App/Response/Http/Interceptor.php但此文件似乎与任何现有类都不匹配。 因此,我正在寻找有关Interceptor.php文件如何生成的详细解释的工作流程?

3
Magento 2中哪些类是“可拦截/可插入”的类
日期:2015年5月30日(鉴于Magento 2的性质不断变化)。 Magento 2引入了一个插件概念,通过拦截器模式实现。 从文档中尚不清楚的是-Magento中的哪些类和对象是“可拦截的”?也就是说,您可以使用如下所示的XML配置插件 <config> <type name="{ObservedType}"> <plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="true"/> </type> </config> 但尚不清楚哪些类可以作为来使用ObservedType。这篇较老的Wiki文章说了一些线索 请注意,插件功能不适用于-在没有依赖项注入的情况下创建的类,即直接使用运算符new创建的类,-Final方法,-Final类 通过依赖项注入创建的任何对象是否可以被拦截?是否ObservedType需要成为a __construct方法中提供的类型提示,或者是否可以(应该吗?)还可以吗? 在我开始使用Magento 2拦截器之前,主要是想弄清楚我能做什么和不能做什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.