Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

2. Getting Started

İzni Burak Demirtaş edited this page Jan 23, 2022 · 7 revisions

Install

composer.json file:

{
 "require": {
 "izniburak/router": "^2.0"
 }
}

after run the install command.

$ composer install

OR run the following command directly.

$ composer require izniburak/router

Quick Usage

require 'vendor/autoload.php';
use Buki\Router\Router;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$router = new Router;
// For basic GET URI
$router->get('/', function(Request $request, Response $response) {
 $response->setContent('Hello World');
 return $response;
 # OR
 # return 'Hello World!';
});
// For basic GET URI by using a Controller class.
$router->get('/test', 'TestController@main');
// For auto discovering all methods and URIs
$router->controller('/users', 'UserController');
$router->run();

And add this code to the .htaccess file:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Congratulations! Now, you can use PHP-Router.

Also, you can check Symfony HTTP Foundation to get more information about Request and Response instance.

If you have a problem, you can contact me or open new issue.

Paths and Namespaces

Default configurations of Buki\Router class for namespaces and paths are as follows;

[
 'paths' => [
 'controllers' => 'Controllers',
 'middlewares' => 'Middlewares',
 ],
 'namespaces' => [
 'controllers' => '',
 'middlewares' => '',
 ]
]

So,

  • Controllers path: Controllers
  • Middlewares path: Middlewares
  • Controllers namespaces: none
  • Middlewares namespaces: none

If you would like to define paths and namespaces for Controllers and Middlewares, you can do this at below:

require 'vendor/autoload.php';
$router = new \Buki\Router\Router([
 'paths' => [
 'controllers' => 'app/Controllers',
 'middlewares' => 'app/Middlewares',
 ],
 'namespaces' => [
 'controllers' => 'App\Controllers',
 'middlewares' => 'App\Middlewares',
 ]
]);
$router->get('/', function() {
 return 'Hello World!';
});
$router->run();

Other Settings

[
 'base_folder' => '',
 'main_method' => 'main',
 'paths' => [
 'controllers' => 'Controllers',
 'middlewares' => 'Middlewares',
 ],
 'namespaces' => [
 'controllers' => '',
 'middlewares' => '',
 ],
 'debug' => false,
]

All settings that you can configure are as above.

  • base_folder => Application base folder. (For example: Directory where index.php file of your app) Default value: getcwd();
  • main_method => This option is defining main method that the routes defined by controller() method for main route of the controller.
  • paths => Controllers and Middlewares paths of your Application.
  • namespaces => Controllers and Middlewares namespaces of your Application.
  • debug => Debug Mode. To show errors and exceptions details. (Default=false)
Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /