1. Go to this page and download the library: Download coffeecode/router library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
coffeecode / router example snippets
use CoffeeCode\Router\Router;
$router = new Router("https://www.youdomain.com");
/**
* routes
* The controller must be in the namespace Test\Controller
* this produces routes for route, route/$id, route/{$id}/profile, etc.
*/
$router->namespace("Test");
$router->get("/route", "Controller:method");
$router->post("/route/{id}", "Controller:method");
$router->put("/route/{id}/profile", "Controller:method");
$router->patch("/route/{id}/profile/{photo}", "Controller:method");
$router->delete("/route/{id}", "Controller:method");
/**
* group by routes and namespace
* this produces routes for /admin/route and /admin/route/$id
* The controller must be in the namespace Dash\Controller
*/
$router->group("admin")->namespace("Dash");
$router->get("/route", "Controller:method");
$router->post("/route/{id}", "Controller:method");
/**
* sub group
*/
$router->group("admin/support");
$router->get("/tickets", "Controller:method");
$router->post("/ticket/{id}", "Controller:method");
/**
* Group Error
* This monitors all Router errors. Are they: 400 Bad Request, 404 Not Found, 405 Method Not Allowed and 501 Not Implemented
*/
$router->group("error")->namespace("Test");
$router->get("/{errcode}", "Coffee:notFound");
/**
* This method executes the routes
*/
$router->dispatch();
/*
* Redirect all errors
*/
if ($router->error()) {
$router->redirect("/error/{$router->error()}");
}
use CoffeeCode\Router\Router;
$router = new Router("https://www.youdomain.com");
/**
* routes
* The controller must be in the namespace Test\Controller
*/
$router->namespace("Test")->group("name");
$router->get("/", "Name:home", "name.home");
$router->get("/hello", "Name:hello", "name.hello");
$router->get("/redirect", "Name:redirect", "name.redirect");
/**
* This method executes the routes
*/
$router->dispatch();
/*
* Redirect all errors
*/
if ($router->error()) {
$router->redirect("name.hello");
}
class Name
{
public function __construct($router)
{
$this->router = $router;
}
public function home(): void
{
echo "<h1>Home</h1>";
echo "<p>", $this->router->route("name.home"), "</p>";
echo "<p>", $this->router->route("name.hello"), "</p>";
echo "<p>", $this->router->route("name.redirect"), "</p>";
}
public function redirect(): void
{
$this->router->redirect("name.hello");
}
}
use CoffeeCode\Router\Router;
$router = new Router("https://www.youdomain.com");
//simple
$router->get("/edit/{id}", "Coffee:edit", middleware: \Http\Guest::class);
$router->get("/denied", "Coffee:denied", "coffe.denied", \Http\Group::class);
//multiple
$router->get("/logado", "Coffee:logged", middleware: [\Http\Guest::class, \Http\Group::class]);
//callable
$router->get("/call", function ($data, Router $router){
//code here
}, middleware: \Http\Guest::class);
use CoffeeCode\Router\Router;
$router = new Router("https://www.youdomain.com");
//group single or multiple
$router->group("name", \Http\Guest::class);
$router->get("/", "Name:home", "name.home");
$router->get("/hello", "Name:hello", "name.hello");
$router->get("/redirect", "Name:redirect", "name.redirect");
namespace Http;
use CoffeeCode\Router\Router;
class User
{
public function handle(Router $router): bool
{
$user = true;
if ($user) {
var_dump($router->current());
return true;
}
return false;
}
}