setono/doctrine-object-manager-trait

此包已被废弃且不再维护。作者建议使用 setono/doctrine-orm-trait 包。

一个非常简单的库,提供对象管理器特质,用于获取给定类的对象管理器。

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

README

Latest Version Software License Build Status Code Coverage Mutation testing

如果你和我一样,通常 不直接注入实体管理器,而是注入管理器注册表,那么这个小库将非常有用。

安装

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