slip / router
Enhanced Slim router with namespaces support
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/slip/router
Requires
- slim/slim: ^3.0
Requires (Dev)
- phpunit/phpunit: ^8
This package is not auto-updated.
Last update: 2025-10-14 01:03:39 UTC
README
Slip Router allows you to add namespaces to your Slim routes and route groups.
Install
Via Composer
$ composer require slip/router
Usage
You need to replace default Slim router with Slip router:
$app = new \Slim\App(); $container = $app->getContainer(); $container['router'] = function ($container) { $routerCacheFile = false; if (isset($container->get('settings')['routerCacheFile'])) { $routerCacheFile = $container->get('settings')['routerCacheFile']; } $router = (new \Slip\Routing\Router())->setCacheFile($routerCacheFile); $router->setContainer($container); return $router; };
Then you can set your routes namespaces
$app->get('/profile/user/{id}', 'UserController:getProfile')->setNamespace('App\Http\Controllers');
Or you can add namespace to the whole route group
$app->group('/profile/user', function ($app) { $app->get('/{id}, 'UserController:getProfile'); })->setNamespace('App\Http\Controllers');
Nested route groups also support namespaces
$app->group('/profile', function ($app) { $app->group('/user', function ($app) { $app->get('/{id}, 'UserController:getProfile'); })->setNamespace('Http\Controllers'); })->setNamespace('App');
Route namespace appends to route groups namespaces
$app->group('/profile', function ($app) { $app->group('/user', function ($app) { $app->get('/{id}, 'UserController:getProfile')->setNamespace('Controllers'); })->setNamespace('Http'); })->setNamespace('App');
Testing
$ php ./vendor/bin/phpunit
License
The MIT License (MIT).