PHP code example of ifcanduela / router

1. Go to this page and download the library: Download ifcanduela/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/ */

    

ifcanduela / router example snippets


$router = new ifcanduela\router\Router();
$router->get("/")->to("my_controller");



/** @var ifcanduela\router\Router $r */

$r->get("/")->to("home");

$r->group("/admin", function (ifcanduela\router\Group $g) {
    $g->get("/dashboard")->to("admin@dashboard");
});

// `$this` can also be used

$this->post("/save")->to("admin@save");

$router = new ifcanduela\router\Router();
$router->loadFile("routes.php", "r");

$router->group("/admin", function (ifcanduela\router\Group $g) {
    $g->loadFile("admin-routes.php");

    $g->group("/settings", function (ifcanduela\router\Group $g) {
        $g->loadFile("admin-settings-routes.php");
    });
});

$group = new Group();
$group->from("/home")->to("home_controller");
$group->get("/login")->to("login_form");
$group->post("/login")->to("login_submit");

$group = new Group();
$group->routes([
    Route::from("/home")->to("home_controller"),
    Route::get("/login")->to("login_form"),
    Route::post("/login")->to("login_submit"),
]);

Route::from("/update-user/{id}", "get", "post")->to("api@updateUser");
Route::from("/create-user")->to("api@createUser")->methods(["PATCH"]);

Route::from("/projects/{id}[/{version}]")
    ->to("project_dashboard")
    ->default("version", "latest");

$adminGroup = $router->group();
$adminGroup->prefix("/admin");
$adminGroup->get("/dashboard")->to([AdminController::class, "dashboard"]);
$adminGroup->get("/users")->to([UsersController::class, "index"]);

$router->group("/admin", function ($adminGroup) {
    $adminGroup->prefix("/admin");
    $adminGroup->get("/dashboard")->to([AdminController::class, "dashboard"]);
    $adminGroup->get("/users")->to([UsersController::class, "index"]);
});

$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
$pathInfo = $request->getPathInfo();
$method = $request->getMethod();

try {
    $route = $router->resolve($pathInfo, $method);
} catch (\ifcanduela\router\InvalidHttpMethod $e) {

} catch (\ifcanduela\router\RouteNotFound $e) {

}

$router->get("/example/view/{id}")->to("example@view")->name("example.view");

$url = $router->createUrlFromRoute("example.view", [123]);
//=> "/example/view/123"

$pathInfo = $request->getPathInfo();
$method = $request->getMethod();

$router->isRoute("example.view", $pathInfo, $method);
//=> true/false

Route::from("/path")->to("handler")
    ->before(MyMiddleware::class, "some_other_thing");

Route::from("/admin/index")->to("admin_index")
    ->namespace("admin");

$router->before(StartSession::class);
$router->after(ConvertToResponse::class, SendResponse::class);