-
-
Notifications
You must be signed in to change notification settings - Fork 49
3. Methods
PHP Router supports GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD, AJAX and ANY request methods.
# GET Request
$router->get('/get-request', function() {
return 'Hello World.';
});# POST Request
$router->post('/post-request', function() {
return 'Hello World.';
});If you want to use Request and Response instance in Router, you can bind them to your Route callback. For example:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
# POST Request
$router->post('/post-request', function(Request $request, Response $response) {
return $response->setContent($request->getMethod());
});You can check Symfony HTTP Foundation to get more information about Request and Response instance.
Available HTTP Methods List for PHP-Router:
- ANY => All request methods
- GET => Get method
- POST => Post method
- PUT => Put method
- DELETE => Delete method
- HEAD => Head method
- OPTIONS => Options method
- PATCH => Patch method
-
AJAX => Request must be
XmlHttpRequest -
XPOST => Request must be
XmlHttpRequestand Post method -
XPUT => Request must be
XmlHttpRequestand Put method -
XDELETE => Request must be
XmlHttpRequestand Delete method -
XPATCH => Request must be
XmlHttpRequestand Patch method
Other examples:
# XPOST Request (Ajax & Post)
$router->xpost('/ajaxp-request', function() {
return 'Hello World.';
});# ANY Request (It accepts all requests.)
$router->any('/any-request', function() {
return 'Hello World.';
});Also, you can define more than one method at one time for a request.
Example:
$router->add('GET|POST', '/request', function() {
return "Hello World. I'm working GET or POST method.";
});Finally, Response of the PHP-Router works three way:
1- You can use string definition directly. This string will be added to Response instance automatically.
$router->get('/', function() {
return 'Hello World.';
});
# "Hello World" string will be added into Response instance of Symfony.2- You can use Response instance directly. In this case, send() method will be triggered by PHP-Router automatically. So, don't use ->send() method in your callback.
use Symfony\Component\HttpFoundation\Response;
$router->get('/', function(Response $response) {
return $response->setContent('Hello World');
});3- You can use array directly. In this case, the array will be converted to json string and sent a response with application/json headers via Response instance of Symfony.
$router->get('/', function() {
return ['Hello', 'World'];
});You can check Symfony HTTP Foundation to get more information about Request and Response instance.
NOTE:
A post value must be sent in an object named "_method" for the Put, Delete, Patch methods.
Example:
# curl -X PUT http://localhost:3000/put-request
# OR
# curl -X POST http://localhost:3000/put-request -d _method=put
$router->put('/put-request', function() {
return 'Hello World.';
});