Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber como funciona a criação de um MVC com routes semelhantes ao laravel.
Alguém teria um tópico, tutorial ou dicas?
Obrigado.
>
28 minutos atrás, yorigames disse:
O Gustavo Guanabara tem um canal e la tem um Curso de Orientação a Objetos para java e php não sei se tem algo sobre routes, mas voce estar a conferir, o canal se chama CursoemVideo
Obrigado amigo, mas o problema não é poo... Mas mesmo assim, obrigado pela dica.
Vou passar a ideia, a partir disso, a sua criatividade é o limite!
Arquivo Router.php
<?php
class Router
{
private $config = [];
private $uri;
public function __construct()
{
if (isset($_SERVER['REQUEST_URI'])) {
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$this->uri = $uri;
}
}
public function route($route, $callback)
{
$this->config[] = [$route => $callback];
}
public function run()
{
foreach ($this->config as $routes) {
if (array_key_exists($this->uri, $routes)) {
if ( is_callable($routes[$this->uri]) ) {
return $routes[$this->uri]();
}
}
}
http_response_code(404);
}
}
Arquivo index.php
<?php
require_once 'Router.php';
$app = new Router();
$app->route('/hello', function(){
echo 'Hello Imasters!';
});
$app->route('/contato', function(){
echo "pagina de contato!";
});
$app->run();
Testando:
No terminal: php -S localhost:3000
No navegador [http://localhost:3000/hello](http://localhost:4000/hello)
Sera exibido, Hello Imasters!
No construtor, eu pego a url solicitada, neste caso sera /hello
No método route() eu cadastro a rota desejada e um callback
E por fim, no método run() verifico se a url acessada esta cadastrada, se estiver e existir um callback associado, o executo!
Simplesmente fantástico. Eu estava tentando imaginar como seria esse processo e simplesmente deu um nó no meu cérebro.
Muito obrigado.
O Gustavo Guanabara tem um canal e la tem um Curso de Orientação a Objetos para java e php não sei se tem algo sobre routes, mas voce estar a conferir, o canal se chama CursoemVideo