问题标签 [symfony-eventdispatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

php - Symfony4 和 Event Dispatcher 问题,脚本在事件发生 25 秒后继续

我对 Symfony4 上的 Event Dispatcher 有疑问。脚本在事件完成25 秒后继续。这里的代码:

控制器(必要部分):

EventSubscriber(必要部分):

日志的结果是:

这怎么可能?在我的脚本中,事件结束和其他日志之间没有任何内容。也许这是一个 symfony 核心错误?我想说它不是系统的,它有时会发生。

感谢您的帮助!

0 投票
1 回答
675 浏览

php - Symfony 4.4 事件调度程序

我收到以下错误:

未找到服务“event_dispatcher”:即使它存在于应用程序的容器中,但“App\Controller\RatingApiController”内的容器是一个较小的服务定位器,只知道“form.factory”、“http_kernel”、“parameter_bag”、 “request_stack”、“router”、“security.authorization_checker”、“security.csrf.token_manager”、“security.token_storage”、“serializer”、“session”和“twig”服务。尝试改用依赖注入。

我习惯用

用于调度事件但“event_dipatcher”给出错误我似乎无法找到源。

这是我的控制器的一部分:

0 投票
1 回答
104 浏览

wordpress - Symfony 4 Event Dispatcher - 是否有一些解决方案如何使用 Event Dispatcher 过滤值?(如 wordpress “add_filter” 功能)

是否有一些解决方案如何使用 Symfony Event Dispatcher 过滤值/值,例如 wordpress 和 add_filter 返回过滤值?也许将属性存储在事件中并与订阅者一起编辑它们?

0 投票
2 回答
403 浏览

php - 为什么 InteractiveLoginEvent 没有被 Symfony 的 5.1 新安全系统触发?

使用新的 Symfony 5.1 安全系统,我无法启动InteractiveLoginEvent.

我按照官方文档(此处此处)中的配置进行了操作,并且该系统在以前的安全系统中运行良好。

下面是我的 security.yaml :

和 UserLocalSuscriber :

如何正确配置?没有它,一旦用户登录,用户区域设置就不会正确设置。

0 投票
2 回答
590 浏览

php - symfony 5 - 事件未发送

提交订单时,我使用事件订阅者来处理一些操作。

问题我的事件没有被调度,但 symfony 能够找到他,因为他告诉我我的 OrderEvent::ORDER_CREATE 是孤立的。

我预计执行已停止,die('Hello you from subscriber');但事实并非如此。

控制器

订单事件

订购者

编辑

找到的唯一解决方法(感谢@nikserg)是将订阅者注入控制器操作(订阅者具有依赖项)然后将我的订阅者注册为服务以供最终services.yaml使用$eventDispatcher->addSubscriber($subscriber);$eventDispatcher->dispatch(new OrderEvent($Order),OrderEvent::ORDER_CREATE);

对于这么简单的任务来说,所有这些东西似乎真的很复杂

编辑2

我找到了另一种方法,我可以在不使用的情况下执行我的订阅者,$eventDispatcher->addSubscriber($subscriber);并且$eventDispatcher->dispatch(new OrderEvent($Order));只有当我将订阅者配置为服务时,services.yaml但为什么 symfony 确实需要 services.yaml 中的这些信息?认为 src/ 中的所有内容都可以用作服务..

编辑3

我的 OrderSubscriber 已加载到容器中,那么为什么我应该将其明确设置为正在执行?我不知道发生了什么事

编辑 4

如果我OrderSubscriber明确设置我的容器中有两个实例。为什么 symfony 显式执行一组而不是一组resource: '../src/*'

0 投票
1 回答
83 浏览

symfony - 在运行时更改订阅的事件(Symfony/Doctrine ED)

https://symfony.com/doc/current/event_dispatcher.html为例

假设可以在运行时更改此列表是否正确?

例如

这是合法的和取消订阅logExceptionnotifyException当我$someToggle在运行时设置?

0 投票
1 回答
186 浏览

php - 从 Symfony 中的事件监听器捕获异常,这样它们就不会停止其他监听器

我在 Symfony 4.4 应用程序中有一个问题,其中有十几个侦听器正在侦听扩展的单个事件Symfony\Contracts\EventDispatcher\Event。问题是,如果其中一个侦听器抛出异常,那么后面的侦听器都不会被执行。

我正在寻找一种从侦听器中捕获异常的方法,这样就不会发生这种情况。我尝试扩展Symfony\Component\EventDispatcher\EventDispatcher和覆盖该callListeners()方法以包含try/catch以便我可以记录异常但继续执行。但我不知道如何告诉 Symfony 使用我的EventDispatcher而不是它自己的。

我不知道这是否是解决这个问题的推荐方法。知道如何让这个工作,或者是否有任何其他选择?

0 投票
1 回答
24 浏览

symfony - PreFlush / OnFlush / PostFlush Symfony 原则

我们如何在 Symfony / Doctrine 中执行之前手动编辑最终的 SQL 查询?

我需要在 SQL 中手动更改值,我知道我可以在实体中编辑它 postPersist,但我在一个特殊情况下,这个解决方案在我的架构中不起作用。

一个小想法:

0 投票
0 回答
23 浏览

symfony - 如何在 Shopware6 Symfony 框架中实例化此类价格并使用 getNet() 方法

我正在开发 Shopware 6 插件。

下面是我的 services.xml 文件

这可行print_r($entityLoadedEvent->getIds());,但这print_r($price->getNet());不起作用我尝试在类$price = new Price内部和外部实例化类,ProductLoadedListener但我得到了错误。

那我该如何让它print_r($price->getNet());工作呢?