Как подружить Laravel и Doctrine
хочу подружить доктрину с ларавел, для этого поставил пакеты через компосер:
"doctrine/doctrine-bundle": "^2.10",
"doctrine/doctrine-fixtures-bundle": "^3.4",
"doctrine/doctrine-migrations-bundle": "^3.2",
"doctrine/orm": "^2.15",
Есть небольшой контроллер пользователя
<?php
namespace App\Http\Controllers;
use App\Models\User\UseCase\SignUp;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/users", name="users")
*/
class UsersController extends Controller
{
/**
* @Route("", name="")
* @param Request $request
* @param SignUp\Request\Handler $handler
* @return View
*/
public function index(Request $request, SignUp\Request\Handler $handler): View
{
$command = new SignUp\Request\Command();
$command->email = '[email protected]';
$command->password = 'hash';
$handler->handle($command);
return view('users');
}
}
и обработчик для него:
<?php
declare(strict_types=1);
namespace App\Models\User\UseCase\SignUp\Request;
use App\Models\User\Entity\User\User;
use Doctrine\ORM\EntityManagerInterface;
use Ramsey\Uuid\Uuid;
class Handler
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function handle(Command $command): void
{
$email = mb_strtolower($command->email);
// логика создания пользователя
$this->em->persist($user);
$this->em->flush();
}
}
и при вызове обработчика падает в ошибку из-за EntityManagerInterface
Illuminate \ Contracts \ Container \ BindingResolutionException
Target [Doctrine\ORM\EntityManagerInterface] is not instantiable while building [App\Models\User\UseCase\SignUp\Request\Handler].
Можете направить меня как правильно подружить эти две штуки и куда копать что-бы разобраться)