diff --git a/README.md b/README.md index fd219f5..6560f62 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ Essa estrutura já está dockerizada, então basta ter o docker compose rodando Primeiro basta clonar o repositório -`git clone bla bla bla` +`git clone https://github.com/digitalcollege-classes/php-oo` Agora entre na pasta com o terminal -`cd setup-php-docker` +`cd php-oo` E agora basta rodar o docker diff --git a/config/routes.php b/config/routes.php index 7a6665f..ec79e27 100644 --- a/config/routes.php +++ b/config/routes.php @@ -3,16 +3,41 @@ use App\Controller\CursoController; use App\Controller\HomeController; use App\Controller\ErrorController; +use App\Controller\AlunoController; +use App\Entity\Curso; return [ - // url a ser acessada => [Controller, metodo] - '/' => [HomeController::class, 'index'], + // Rotas do HomeController + HomeController::class => [ + '/' => 'index', + ], + // Rotas do ErrorController + ErrorController::class => [ + '/erro-404' => 'notFound', + ], - '/erro-404' => [ErrorController::class, 'notFound'], + // Rotas do CursoController + CursoController::class => [ + 'cursos' => [ + '/listar' => 'listar', + '/adicionar' => 'add', + '/editar' => 'editar', + '/excluir' => 'excluir', + '/alunos' => 'alunos', + ] + ], - '/cursos/listar' => [CursoController::class, 'listar'], - '/cursos/adicionar' => [CursoController::class, 'add'], - '/cursos/editar' => [CursoController::class, 'editar'], - '/cursos/excluir' => [CursoController::class, 'excluir'], -]; \ No newline at end of file + // Rotas do AlunoController + AlunoController::class => [ + 'aluno' => [ + '/matricula' => 'matricula', + '/nome' => 'nome', + '/curso' => 'curso', + '/turno' => 'turno', + '/notas' => 'notas', + ] + ], +]; + +?> diff --git a/public/index.php b/public/index.php index 3ee4cda..2f33cc0 100644 --- a/public/index.php +++ b/public/index.php @@ -1,17 +1,46 @@ $actions) { + if ($controller === CursoController::class && isset($actions['cursos'])) { + $prefixo = '/cursos'; + $rota = substr($url, strlen($prefixo)); + + if (isset($actions['cursos'][$rota])) { + $controllerFound = true; + $method = $actions['cursos'][$rota]; + (new CursoController())->$method(); + break; + } + } elseif ($controller === AlunoController::class && isset($actions['aluno'])) { + $prefixo = '/aluno'; + $rota = substr($url, strlen($prefixo)); + + if (isset($actions['aluno'][$rota])) { + $controllerFound = true; + $method = $actions['aluno'][$rota]; + (new AlunoController())->$method(); + break; + } + } elseif (isset($actions[$url])) { + $controllerFound = true; + $method = $actions[$url]; + (new $controller())->$method(); + break; + } +} + +if (!$controllerFound) { header('location: /erro-404'); exit; } - -$controller = $routes[$url][0]; -$method = $routes[$url][1]; - -(new $controller())->$method(); \ No newline at end of file diff --git a/src/Controller/AlunoController.php b/src/Controller/AlunoController.php new file mode 100644 index 0000000..553d990 --- /dev/null +++ b/src/Controller/AlunoController.php @@ -0,0 +1,36 @@ +Nome"; + } + + public function curso(): void + { + echo "Curso"; + } + + public function turma(): void + { + echo "Turma"; + } + + public function notas(): void + { + echo "Notas"; + } +} + +?> diff --git a/src/Controller/CursoController.php b/src/Controller/CursoController.php index a687d29..20a9f5d 100644 --- a/src/Controller/CursoController.php +++ b/src/Controller/CursoController.php @@ -25,4 +25,9 @@ public function excluir(): void { echo "Excluir"; } + + public function alunos(): void + { + echo "alunos"; + } } \ No newline at end of file