The package provides a convention-based router middleware that chooses controller based on its namespace and class name.
- PHP 8.1 or higher.
The package could be installed with Composer:
composer require yiisoft/file-router
-
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()
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.
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.