bentools/doctrine-static
Lightweight in-memory Doctrine mock for unit tests. Create ObjectManagers in a ManagerRegistry, persist/remove and flush to a temporary store, and use repository methods like find, findBy, findOneBy, and findAll. Not for real persistence.
This library is intended to be used for mocking ObjectManagers and Repositories behaviors in your unit tests.
It is of course not intended to be used as a real persistence system.
ObjectManager and store them in a ManagerRegistry$objectManager->persist(), $objectManager->remove() and $objectManager->flush() as usual (objects are stored in a temporary array before you call flush())find(), findBy(), findOneBy() and findAll()merge, detach, refresh, ...namespace App\Entity;
class Foo
{
private $id;
private $name;
/**
* Foo constructor.
* @param $id
* @param $name
*/
public function __construct($id, $name)
{
$this->id = $id;
$this->name = $name;
}
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
}
use App\Entity\Foo;
use BenTools\DoctrineStatic\ManagerRegistry;
use BenTools\DoctrineStatic\ObjectManager;
use BenTools\DoctrineStatic\ObjectRepository;
require_once __DIR__ . '/vendor/autoload.php';
$foo = new Foo(2, 'foo');
$doctrine = new ManagerRegistry([
'default' => new ObjectManager([
new ObjectRepository(Foo::class)
]
),
]);
$em = $doctrine->getManager();
$em->persist($foo);
$em->flush();
// Retrieve object by id
$em->find(Foo::class, 2);
// Retrieve objects with name matching "foo"
$em->getRepository(Foo::class)->findBy(['name' => 'foo']);
composer require --dev benools/doctrine-static:1.0.x-dev
./vendor/bin/phpunit
MIT
How can I help you explore Laravel packages today?