https://github.com/mohdrashid/phprouter
An express inspired Routing library for PHP
https://github.com/mohdrashid/phprouter
api http php php7 router routing
Last synced: 6 months ago
JSON representation
An express inspired Routing library for PHP
- Host: GitHub
- URL: https://github.com/mohdrashid/phprouter
- Owner: mohdrashid
- License: mit
- Created: 2017-03-12T11:40:25.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-09-29T08:54:02.000Z (over 6 years ago)
- Last Synced: 2025-04-15T03:51:20.724Z (9 months ago)
- Topics: api, http, php, php7, router, routing
- Language: PHP
- Size: 1.07 MB
- Stars: 24
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: license.md
Awesome Lists containing this project
README
PHPRouter is a simple routing extension for PHP inspired by express framework in Node.JS.
## Installation
Download the zip folder and extract to the directory where your project is located in.
## Usage
Include the router in the project like
```php
include_once('PHPRouter/router.php');
```
PHP router supports GET, POST, PUT, DELETE, PATCH and ANYrequests. Function any can be used to capture all events. The callback will return request parameters and response object in order.
A typical route looks initialization looks like:
```php
//where method is get,post,put,delete, patch or any
$app->method('/', function($request,$response){
$response->send("GET request");
});
```
Support for complex routes using regex
```php
//where method is get,post,put,delete or patch
$app->method('/:id', function($request,$response){
$response->send("GET request");
});
```
Here the id will be returned as name-value pair in request array's "params" field.
-------------------------------------------------------------------
## Example
```php
any('/employee', function($request,$response){
$response->send("ANY request");
});
//All GET request for /user will come here
$app->get('/user', function($request,$response){
$response->json(["id"=>"1","name"=>"DroidHat","url"=>"http://www.droidhat.com"],200);
});
//All POST request for /:id will come here; where id is any alphanumeral
$app->post('/:id', function($request,$response){
$response->json(["id"=>($request["params"]["id"])],200);
});
//All POST request for /:id/:name will come here; where id and name are any alphanumeral
$app->post('/:id/:name', function($request,$response){
$response->json(["id"=>($request["params"]["id"]),"name"=>($request["params"]["name"])],200);
});
$app->put('/', function($request,$response){
$response->send("PUT request");
});
$app->patch('/', function($request,$response){
$response->send("PATCH request");
});
$app->delete('/', function($request,$response){
$response->send("DELETE request");
});
//Error Handler
$app->error(function(Exception $e,$response){
$response->send('path not found',404);
});
//Starting the router
$app->start();
?>
```
## API
* $app->get()
* $app->post()
* $app->put()
* $app->delete()
* $app->patch()
* $app->any()
* $app->error()
* $app->start()
-------------------------------------------------------
### Route Methods
$app->method($path, function($request,$response){}); where method is get, post, put, delete, patch or any. any supports all methods.
The first parameter is the route path like '/' or '/user'.
Second parameter is the callback function, i.e., the function to be called when processing is done.
The callback function takes request array and response object as parameters.
---------------------------------------------------------
### Request Array
Contains headers(HTTP information, Request information and PHP_AUTH) information, body parameter, url parameters, files and cookies informations in array format.
Array indexes
"raw": Body in raw format
"body": Body in associative array format like $_POST
"header": HTTP,REQUEST and PHP_AUTH information
"method": The type of HTTP REQUEST
"params": URL parameters like $_GET
"files": FIles if any available like $_FILES
"cookies": Cookies if any available like $_COOKIE
Usage
$request["body"] to access body parameters
-------------------------------------------------------
### Response Object
response is an object of class Response. It has methods such as send, json and status.
Fucntions
1. send($message,$status): $message is the message that you want to output to the requester and $status is an optional field in case you want to send status also.
2. json($message,$status): $message is the message that you want to output to the requester and $status is an optional field in case you want to send status also. The difference is that here $message should be a PHP array that will be converted the function to JSON.
3. status($status): send HTTP status only.
Usage
$response->send("Hello World",200); to output to the requester "hello" world with a status of 200
-------------------------------------------------------
### Error
$app->error(function(Exception $e){})
Error function takes a callback function as a parameter. The callback function will be passed exception information if any occurs.
---------------------------------------------------------
### Start Routing
$app->start();
Start the routing process.
-------------------------------------------------------
## License
MIT