Custom Entity Manager Bundle
, (*1)
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the
following command to download the latest stable version of this bundle:, (*2)
$ 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., (*3)
Step 2: Enable the Bundle
Then, enable the bundle by adding the following line in the app/AppKernel.php
file of your project:, (*4)
<?php
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Grossum\CustomEntityManagerBundle\GrossumCustomEntityManagerBundle(),
);
// ...
}
// ...
}
Step 3: Services configuration
You need to add tag name to your entity manager service definition:, (*5)
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., (*6)
Step 4: Usage
// ...
/** @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);
}
// ...