chrzanek98 / pimcore-object-event-listeners-bundle
此捆绑包允许以简单灵活的方式为 pimcore DataObjects 创建事件监听器
1.0.0
2018-10-25 23:55 UTC
Requires
- php: >=5.6.0
- pimcore/pimcore: 5.*
This package is auto-updated.
Last update: 2024-09-29 05:21:22 UTC
README
安装
步骤 1: 下载捆绑包
打开命令行,进入您的项目目录并执行
$ composer require chrzanek98/pimcore-object-event-listeners-bundle
此命令需要您全局安装了 Composer,具体请参考 Composer 文档中的安装章节。
步骤 2: 启用捆绑包
然后,将捆绑包添加到项目中 app/AppKernel.php
文件中注册的捆绑包列表中,以启用捆绑包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new \Chrzanek98\PimcoreObjectEventListenersBundle\Chrzanek98PimcoreObjectEventListenersBundle(), ); // ... } // ... }
它是如何工作的?
步骤 1
创建处理器类,例如 AcmeEventListener.php,并扩展 AbstractHandler
<?php namespace AppBundle\EventListeners; use Chrzanek98\PimcoreObjectEventListenersBundle\EventListeners\Providers\AbstractHandler; use Pimcore\Event\Model\DataObjectEvent; class AcmeEventListener extends AbstractHandler { // ... }
步骤 2
实现 canHandle 方法
<?php namespace AppBundle\EventListeners; // ... class AcmeEventListener extends AbstractHandler { public function canHandle(DataObjectEvent $element) { return $element->getObject() instanceof Acme; } }
步骤 3
使用所需的钩子,目前可用的有 pre/post Add/Update/Delete
<?php namespace AppBundle\EventListeners; // ... class AcmeEventListener extends AbstractHandler { public function preUpdate(DataObjectEvent $element) { throw new NotFoundHttpException('Lorem ipsum dolor sit amet'); } public function canHandle(DataObjectEvent $element) { return $element->getObject() instanceof Acme; } }
步骤 4
将您的事件处理器注册为带有标签 object.handler
的服务
object.handler.acme: class: AppBundle\EventListeners\AcmeEventListener tags: - { name: object.handler }