Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
41 changes: 33 additions & 8 deletions config/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
];
// Rotas do AlunoController
AlunoController::class => [
'aluno' => [
'/matricula' => 'matricula',
'/nome' => 'nome',
'/curso' => 'curso',
'/turno' => 'turno',
'/notas' => 'notas',
]
],
];

?>
43 changes: 36 additions & 7 deletions public/index.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
<?php

include "../vendor/autoload.php";
require_once "../vendor/autoload.php";

use App\Controller\CursoController;
use App\Controller\AlunoController;

$routes = include "../config/routes.php";

$url = $_SERVER['REQUEST_URI'];

if (false === isset($routes[$url])) {
$controllerFound = false;

foreach ($routes as $controller => $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();
36 changes: 36 additions & 0 deletions src/Controller/AlunoController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php


declare(strict_types=1);

namespace App\Controller;

class AlunoController {
// Métodos da classe AlunoController
public function matricula(): void
{
echo "Matricula";
}

public function nome(): void
{
echo "<marquee>Nome</marquee>";
}

public function curso(): void
{
echo "Curso";
}

public function turma(): void
{
echo "Turma";
}

public function notas(): void
{
echo "Notas";
}
}

?>
5 changes: 5 additions & 0 deletions src/Controller/CursoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,9 @@ public function excluir(): void
{
echo "Excluir";
}

public function alunos(): void
{
echo "alunos";
}
}