问题标签 [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.
php - Symfony4 和 Event Dispatcher 问题,脚本在事件发生 25 秒后继续
我对 Symfony4 上的 Event Dispatcher 有疑问。脚本在事件完成25 秒后继续。这里的代码:
控制器(必要部分):
EventSubscriber(必要部分):
日志的结果是:
这怎么可能?在我的脚本中,事件结束和其他日志之间没有任何内容。也许这是一个 symfony 核心错误?我想说它不是系统的,它有时会发生。
感谢您的帮助!
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”给出错误我似乎无法找到源。
这是我的控制器的一部分:
wordpress - Symfony 4 Event Dispatcher - 是否有一些解决方案如何使用 Event Dispatcher 过滤值?(如 wordpress “add_filter” 功能)
是否有一些解决方案如何使用 Symfony Event Dispatcher 过滤值/值,例如 wordpress 和 add_filter 返回过滤值?也许将属性存储在事件中并与订阅者一起编辑它们?
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/*'
symfony - 在运行时更改订阅的事件(Symfony/Doctrine ED)
以https://symfony.com/doc/current/event_dispatcher.html为例
假设可以在运行时更改此列表是否正确?
例如
这是合法的和取消订阅logException
,notifyException
当我$someToggle
在运行时设置?
php - 从 Symfony 中的事件监听器捕获异常,这样它们就不会停止其他监听器
我在 Symfony 4.4 应用程序中有一个问题,其中有十几个侦听器正在侦听扩展的单个事件Symfony\Contracts\EventDispatcher\Event
。问题是,如果其中一个侦听器抛出异常,那么后面的侦听器都不会被执行。
我正在寻找一种从侦听器中捕获异常的方法,这样就不会发生这种情况。我尝试扩展Symfony\Component\EventDispatcher\EventDispatcher
和覆盖该callListeners()
方法以包含try
/catch
以便我可以记录异常但继续执行。但我不知道如何告诉 Symfony 使用我的EventDispatcher
而不是它自己的。
我不知道这是否是解决这个问题的推荐方法。知道如何让这个工作,或者是否有任何其他选择?
symfony - PreFlush / OnFlush / PostFlush Symfony 原则
我们如何在 Symfony / Doctrine 中执行之前手动编辑最终的 SQL 查询?
我需要在 SQL 中手动更改值,我知道我可以在实体中编辑它 postPersist,但我在一个特殊情况下,这个解决方案在我的架构中不起作用。
一个小想法:
symfony - 如何在 Shopware6 Symfony 框架中实例化此类价格并使用 getNet() 方法
我正在开发 Shopware 6 插件。
下面是我的 services.xml 文件
这可行print_r($entityLoadedEvent->getIds());
,但这print_r($price->getNet());
不起作用我尝试在类$price = new Price
内部和外部实例化类,ProductLoadedListener
但我得到了错误。
那我该如何让它print_r($price->getNet());
工作呢?