Laravel-like routing for your project
composer require mkgor/pointsman
<?php
use Pointsman\Pointsman;
Pointsman::get('getUserById', '/api/user/get/[id]', 'ApiController::getUserById');
Pointsman::post('createUser', '/api/user/create', 'ApiController::createUser');
Pointsman::update('editUserById', '/api/user/edit/[id]', 'ApiController::editUserById');
Pointsman::delete('deleteUserById', '/api/user/delete/[id]', function ($id) {
//deleting user
});
//You can use any PSR-7 compatible request
Pointsman::handleUrl(Laminas\Diactoros\ServerRequestFactory::fromGlobals(
$_SERVER,
$_GET,
$_POST,
$_COOKIE,
$_FILES
));
<?php
use Pointsman\Pointsman;
Pointsman::prefix('api', function() {
Pointsman::get('getUserById', '/user/get/[id]', 'ApiController::getUserById');
Pointsman::post('createUser', '/user/create', 'ApiController::createUser');
Pointsman::update('editUserById', '/user/edit/[id]', 'ApiController::editUserById');
Pointsman::delete('deleteUserById', '/user/delete/[id]', 'ApiController::deleteUserById');
});
//You can use any PSR-7 compatible request
Pointsman::handleUrl(Laminas\Diactoros\ServerRequestFactory::fromGlobals(
$_SERVER,
$_GET,
$_POST,
$_COOKIE,
$_FILES
));
<?php
//.... defining routes
echo Pointsman::dumpRoutes();
<?php
use Pointsman\Pointsman;
// [ ] - means that parameter is required
Pointsman::get('getUserById', '/user/get/[id]', 'ApiController::getUserById');
// ( ) - parameter is not required
Pointsman::update('editUserById', '/user/edit/(id)', 'ApiController::editUserById');
// You also can specify custom regular expression for parameter
Pointsman::delete('deleteUserById', '/user/delete/[id:\d+]', 'ApiController::deleteUserById');
<?php
use Pointsman\Pointsman;
Pointsman::get('getUserById', '/user/get/[id]', function($id) {
//Pointsman::$currentRoute contains all information about current route
var_dump(Pointsman::$currentRoute);
});