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.
$ composer require setono/doctrine-object-manager-trait
<?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();
}
}