tenolo/doctrine-walker-bundle

此包添加了一个基于事件的SQL输出遍历器。

dev-master / 1.0.x-dev 2019-07-22 08:37 UTC

This package is auto-updated.

Last update: 2024-09-22 19:23:02 UTC


README

tenolo

PHP Version Latest Stable Version Latest Unstable Version Total Downloads Total Downloads License

Doctrine Walker Bundle

一个用于在 Doctrine 中添加事件驱动的 SQL 遍历器的 Symfony Bundle。

安装说明

首先,您需要在 composer.json 中添加 tenolo/doctrine-walker-bundle

{
   "require": {
        "tenolo/doctrine-walker-bundle": "~1.0"
    }
}

或者直接执行 composer require tenolo/doctrine-walker-bundle

请注意,dev-master 是最新开发版本。当然,您也可以使用显式的版本号,例如,1.0.*

如何使用

只需注册一些事件。

<?php

namespace Some\Namespace;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Tenolo\Bundle\DoctrineWalkerBundle\Event\SqlWalkerEvent;

/**
 * Class ExampleWalkerListener
 */
class ExampleWalkerListener implements EventSubscriberInterface
{

    /**
     * @inheritDoc
     */
    public static function getSubscribedEvents()
    {
        return [
            SqlWalkerEvent::FROM_CLAUSE => 'walkFromClause',
        ];
    }

    /**
     * @param SqlWalkerEvent $event
     */
    public function walkFromClause(SqlWalkerEvent $event): void
    {
        $sql = $event->getSql();
        $em = $event->getEntityManager();
        $conn = $event->getConnection();
        $query = $event->getQuery();

        // manipulate sql
        $sql = 'NONSENSE';

        $event->setSql($sql);
    }

}