grossum/custom-entity-manager

Custom entity manager bundle

v0.1.1 2018-04-13 13:22 UTC

This package is not auto-updated.

Last update: 2024-11-09 18:32:53 UTC


README

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