/
home
/
obinna
/
html
/
mixchief_app
/
vendor
/
doctrine
/
migrations
/
lib
/
Doctrine
/
Migrations
/
Upload File
HOME
<?php declare(strict_types=1); namespace Doctrine\Migrations; use Doctrine\Common\EventArgs; use Doctrine\Common\EventManager; use Doctrine\DBAL\Connection; use Doctrine\Migrations\Event\MigrationsEventArgs; use Doctrine\Migrations\Event\MigrationsVersionEventArgs; use Doctrine\Migrations\Metadata\MigrationPlan; use Doctrine\Migrations\Metadata\MigrationPlanList; /** * The EventDispatcher class is responsible for dispatching events internally that a user can listen for. * * @internal */ final class EventDispatcher { /** @var EventManager */ private $eventManager; /** @var Connection */ private $connection; public function __construct(Connection $connection, EventManager $eventManager) { $this->eventManager = $eventManager; $this->connection = $connection; } public function dispatchMigrationEvent( string $eventName, MigrationPlanList $migrationsPlan, MigratorConfiguration $migratorConfiguration ): void { $event = $this->createMigrationEventArgs($migrationsPlan, $migratorConfiguration); $this->dispatchEvent($eventName, $event); } public function dispatchVersionEvent( string $eventName, MigrationPlan $plan, MigratorConfiguration $migratorConfiguration ): void { $event = $this->createMigrationsVersionEventArgs( $plan, $migratorConfiguration ); $this->dispatchEvent($eventName, $event); } private function dispatchEvent(string $eventName, ?EventArgs $args = null): void { $this->eventManager->dispatchEvent($eventName, $args); } private function createMigrationEventArgs( MigrationPlanList $migrationsPlan, MigratorConfiguration $migratorConfiguration ): MigrationsEventArgs { return new MigrationsEventArgs($this->connection, $migrationsPlan, $migratorConfiguration); } private function createMigrationsVersionEventArgs( MigrationPlan $plan, MigratorConfiguration $migratorConfiguration ): MigrationsVersionEventArgs { return new MigrationsVersionEventArgs( $this->connection, $plan, $migratorConfiguration ); } }