yiisoft / file-router
File based router
Fund package maintenance!
Opencollective
yiisoft
Requires
- php: ^8.1
- ext-mbstring: *
- psr/http-message: ^1.0|^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- yiisoft/middleware-dispatcher: ^5.2
Requires (Dev)
- httpsoft/http-message: ^1.1
- httpsoft/http-response: ^1.1
- maglnet/composer-require-checker: ^4.7
- phpunit/phpunit: ^10.5
- rector/rector: ^2.0.3
- roave/infection-static-analysis-plugin: ^1.34
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.16
- yiisoft/test-support: ^3.0
This package is auto-updated.
Last update: 2024-12-13 09:20:30 UTC
README
Yii File Router
The package provides a convention-based router middleware that chooses controller based on its namespace and class name.
Requirements
- PHP 8.1 or higher.
Installation
The package could be installed with Composer:
composer require yiisoft/file-router
General usage
-
Add
\Yiisoft\FileRouter\FileRouter
to the list of middlewares in your application configuration,web/params.php
:return [ 'middlewares' => [ // ... \Yiisoft\FileRouter\FileRouter::class, // or [ 'class' => FileRouter::class, 'withNamespace()' => ['App'], 'withBaseControllerDirectory()' => ['Controller'], ], // ... ] ];
-
Configure the router for your needs.
By default, the following structure of the app could be used assuming App
points to src
directory:
src
Controller
User
Profile
IndexController.php
BlogController.php
UserController.php
IndexController.php
Here's how it works:
GET /
→IndexController::index()
GET /user
→UserController::index()
POST /user
→UserController::create()
GET /user/blog/view
→User/BlogController::view()
GET /user/profile
→User/Profile/IndexController::index()
Documentation
For additional information, check the following docs:
- Guide: English, Português - Brasil
- Internals
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
License
The Yii File Router is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.