Bom dia,
Estou recebendo esse erro, e não consigo entender porque, conferi o código muitas vezes e não encontro erros no código. Tentei adicionar o use Alura\Cursos\Controller\EditaCurso no arquivo index, e não deu boa, já não sei mais oque tentar...
Fatal error: Uncaught Error: Class "Alura\Cursos\Controller\EditaCurso" not found in C:\xampp\htdocs\PHP - Alura\G- mvc-com-php\public\index.php:30 Stack trace: #0 {main} thrown in C:\xampp\htdocs\PHP - Alura\G- mvc-com-php\public\index.php on line 30
EditaCurso
<?php
namespace Alura\Cursos\Controller;
use Alura\Cursos\Entity\Curso;
use Alura\Cursos\Infra\EntityManagerCreator;
use Alura\Cursos\Doctrine\Common\Persistence\ObjectRepository;
class EditaCurso implements InterfaceControladorRequisicao
{
/** @var ObjectRepository */
private $repositorioCursos;
public function __construct()
{
$entityManager = (new EntityManagerCreator())->getEntityManager();
$this->repositorioCursos = $entityManager->getRepository(Curso::class);
}
public function processaRequisicao(): void
{
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (is_null($id) || $id === false) {
header('Location: /listar-cursos');
return;
}
$curso = $this->repositorioCursos->find($id);
$titulo = 'Alterar curso ' . $curso->getDescricao();
require __DIR__ . '/../../view/cursos/formulario.php';
}
}
routes
<?php
use Alura\Cursos\Controller\{FormularioInsercao, ListarCursos, SalvarCurso, ExcluirCurso, EditaCurso};
// Cria rotas para passarpara index.php
return [
'/listar-cursos' => ListarCursos::class,
'/novo-curso' => FormularioInsercao::class,
'/salvar-curso' => SalvarCurso::class,
'/excluir-curso' => ExcluirCurso::class,
'/editar-curso' => EditaCurso::class
];
formulario
<?php include __DIR__ . '/../header.php' ; ?>
<form action="/salvar-curso" method="POST">
<div class="form-group">
<label for="descricao">Descricao</label>
<input type="text" class="form-control" id="descricao" name="descricao"
value="<?= isset($curso) ? $curso->getDescricao() : ''; ?>">
</div>
<button class="btn btn-primary my-2">Salvar</button>
</form>
<?php include __DIR__ . '/../footer.php' ; ?>
index
<?php
/*******************************/
/* FRONT CONTROLLER */
/*******************************/
require_once __DIR__ . '/../vendor/autoload.php';
use Alura\Cursos\Controller\InterfaceControladorRequisicao;
$caminho = $_SERVER['PATH_INFO'];
$rotas = require_once __DIR__ . '/../config/routes.php';
if (!array_key_exists($caminho, $rotas)) {
http_response_code(404);
exit();
}
$classeControladora = $rotas[$caminho];
/** @var InterfaceControladorRequisicao */
$controlador = new $classeControladora();
$controlador->processaRequisicao();
?>