Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require grossum/custom-entity-manager
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Then, enable the bundle by adding the following line in the app/AppKernel.php
file of your project:
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Grossum\CustomEntityManagerBundle\GrossumCustomEntityManagerBundle(),
);
// ...
}
// ...
}
You need to add tag name to your entity manager service definition:
tags:
// ...
- {name: entity.custom_manager}
Your entity manager classes must implement ManagedClassNameInterface interface and provide information about full name of managed class by getManagedClassName method.
// ...
/** @var EntityManagerLoader $entityManagerLoader */
private $entityManagerLoader;
// ...
public function __construct(
EntityManagerLoader $entityManagerLoader,
// ...
) {
$this->entityManagerLoader = $entityManagerLoader;
// ...
}
// ...
/**
* param string $className
* return ManagedClassNameInterface
*/
public function getEntityManagerByClassName($className)
{
return $this->entityManagerLoader->getManagerForClass($className);
}
// ...