Doctrine Manager and Accessing Entity Managers

Accessing Entity Managers

Laravel Doctrine uses DoctrineManager to provide an easy method of hooking into the internals of an Entity Manager for more advanced configuration than is possible with just a configuration file.

It provides access to three facets of Doctrine:

These objects are accessed per Entity Manager using the name configured for that EM in doctrine.php

Using DoctrineManager

Boilerplate example of DoctrineManager using facade LaravelDoctrine\ORM\Facades\Doctrine

Doctrine::extend('myManager', function(Configuration $configuration, Connection $connection, EventManager $eventManager) {
    //modify and access settings as is needed
});

Using dependency injection in boot() of a ServiceProvider

public function boot(DoctrineManager $manager) {
    $manager->extend('myManager', function(Configuration $configuration, Connection $connection, EventManager $eventManager) {
        //modify and access settings as is needed
    });
}

Implementing Your Own Extender

Additionally, you can write your own custom manager by implementing LaravelDoctrine\ORM\DoctrineExtender

class MyDoctrineExtender implements DoctrineExtender
{
    /**
    * @param Configuration $configuration
    * @param Connection    $connection
    * @param EventManager  $eventManager
    */
    public function extend(Configuration $configuration, Connection $connection, EventManager $eventManager)
    {
        //your extending code...
    }
}


$manager->extend('myManager', MyDoctrineExtender::class);

This is documentation for laravel-doctrine/orm. Please add your ★ star to the project.