Skip to content

Setono/doctrine-object-manager-trait

Repository files navigation

Doctrine Object Manager Trait

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Languages