hexan45/router

Easy to use and simply PHP router

v1.0.0 2022-12-19 16:08 UTC

This package is auto-updated.

Last update: 2025-05-21 23:06:03 UTC


README

router library created with PHP language

Installation

Assuming you don't have initialized composer.json file. You must execute code given under below.

composer init
composer require hexan45/s-router:dev-main

In main project folder create .htaccess file and paste this code

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php?request=%{THE_REQUEST} [L]

To start using library create file named index.php in your root directory and use build in include() or require() function to include autoloading PSR-4 file named autoload.php.

Usage

In index.php file you must import router class by enter this code use Router/Route;

Create Route class instance

$Route = new Route();

Register path for GET uri method

$Route->Get(routePath: '/', routeController: callbackFunction());
or
$Route->Get(routePath: '/', routeController: [somethingControllerClass::class, 'somethingControllerMethod']);
or
$Route->Get(routePath: '/', routeController: 'somethingControllerClass@somethingControllerMethod');

Register path for POST uri method

$Route->Post(routePath: '/', routeController: callbackFunction());
or
$Route->Post(routePath: '/', routeController: [somethingControllerClass::class, 'somethingControllerMethod']);
or
$Route->Post(routePath: '/', routeController: 'somethingControllerClass@somethingControllerMethod');

Register dynamic routes

$Route->Post(routePath: '/article/$id', routeController: callbackFunction($id));
or
$Route->Post(routePath: '/some/$someID/thing/$thingID', routeController: callbackFunction($someID, $thingID));

Important thing! You must add the same names in callbackFunctions/methods parameters as in routePath.

Example

$Route->Post(routePath: '/article/$id', 'AdminController@index');

So in AdminController class, your index method should look like this

public function index($id) {...someCode}

Methods arguments

Get

  • routePath (string) - Path of uri which will be register in router
  • routeController (callable|array|string) - Code access details which specify code to run when user enter registered route path

Post

  • routePath (string) - Path of uri which will be register in router
  • routeController (callable|array|string) - Code access details which specify code to run when user enter registered route path