Vinicius, boa tarde !
Realizei a re-fatoração, meu vscode não aponta nenhum erro contudo o server reclama que não consegue achar a Trait, que está lá.
Consegue me ajudar a "enxergar" a falha cometida ?
Segue codigo :
erro :
Fatal error: Trait 'Alura\Cursos\Helper\FlashMessageTrait' not found in C:\Paulo\Desenvolvimentos\Cursos\alura\buscador-cursos-psr\src\Controller\RealizarLogin.php on line 13
<?php
namespace Alura\Cursos\Controller;
use Alura\Cursos\Entity\Usuario;
use Alura\Cursos\Helper\FlashMessageTrait;
use Doctrine\ORM\EntityManagerInterface;
use Nyholm\Psr7\Response;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\RequestHandlerInterface;
class RealizarLogin implements RequestHandlerInterface
{
use FlashMessageTrait;
/**
* @var \Doctrine\Common\Persistence\ObjectRepository
*/
private $repositorioDeUsuarios;
public function __construct(EntityManagerInterface $entitymanager) {
$this->repositorioDeUsuarios = $entitymanager->getRepository(Usuario::class);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$queryString = $request->getQueryParams();
$email = filter_var($queryString['email'],FILTER_VALIDATE_EMAIL);
if (is_null($email) || $email === false) {
$this->defineMensagem('danger','E-mail digitado não é um email válido');
return new Response(302,['Location:' => '/login']);
}
$senha = filter_var($queryString['senha'],FILTER_SANITIZE_STRING);
/**
* @var Usuario $usuario
*/
$usuario = $this->repositorioDeUsuarios->findOneBy(['email' => $email]);
if (is_null($usuario) || !$usuario->senhaEstaCorreta($senha)) {
$this->defineMensagem('danger','E-mail ou senha inválidos');
return new Response(302,['Location:' => '/login']);
}
$_SESSION['logado'] = true;
return new Response(302,['Location:' => '/listar-cursos']);
}
}