setono/doctrine-object-manager-trait

This package is abandoned and no longer maintained. The author suggests using the setono/doctrine-orm-trait package instead.

A very simple library that offers an object manager trait to get the object manager for a given class

v1.3.0 2024-04-16 08:25 UTC

README

Latest Version Software License Build Status Code Coverage Mutation testing

If you are like and me and usually don't inject entity managers directly, but inject the manager registry instead then this little library will come in handy.

Installation

$ composer require setono/doctrine-object-manager-trait

Usage

<?php
use Doctrine\Persistence\ManagerRegistry;
use Setono\DoctrineObjectManagerTrait\ORM\ORMManagerTrait;

final class YourClass
{
    use ORMManagerTrait;
    
    public function __construct(ManagerRegistry $managerRegistry)
    {
        $this->managerRegistry = $managerRegistry;
    }
    
    public function someMethod(): void
    {
        /**
         * $entity is an entity managed by Doctrine or a class-string representing an entity managed by Doctrine
         */
        $entity = ;
        
        /**
         * Because we used the ORMManagerTrait above the getManager method will return an EntityManagerInterface
         * 
         * @var \Doctrine\ORM\EntityManagerInterface $manager 
         */
        $manager = $this->getManager($entity);
        
        $manager->persist($entity);
        $manager->flush();
    }
}