Skip to content

GrossumUA/CustomEntityManagerBundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Custom Entity Manager Bundle

Latest Stable Version Total Downloads Latest Unstable Version License

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:

$ 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.

Step 2: Enable the Bundle

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(),
        );

        // ...
    }

    // ...
}

Step 3: Services configuration

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.

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);
}
// ...