yiiboot / routing
the yii3 attribute routing
Fund package maintenance!
Opencollective
yiiboot
Requires
- php: ^8.1
- yiiboot/attributed: ^2.0
- yiisoft/aliases: ^2.0
- yiisoft/di: ^1.1
- yiisoft/dummy-provider: ^1.0
- yiisoft/http: ^1.2
- yiisoft/router: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- rector/rector: ^0.14.3
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.18
This package is not auto-updated.
Last update: 2024-11-11 19:45:44 UTC
README
YiiBoot Routing
An way to define an route with the Route PHP attribute. This allows to configure the route inside its class, without having to add any configuration in external files
Requirements
- PHP 8.1 or higher.
Installation
The package could be installed with composer:
composer require yiiboot/routing
General usage
the config/params.php
return [ // ... 'yiiboot/attributed' => [ 'paths' => [ dirname(__DIR__) . '/src/Controller' ] ] ];
the src/Controller/CustomController.php
namespace App\Controller; use Yiiboot\Routing\Attribute\Route;use Yiisoft\Router\CurrentRoute; #[Route('/customs', name:'customs.', middleware: [ FormatDataResponseAsJson::class ])] final class CustomController { #[Route('/{page:\d+}', name: 'list', method: 'GET', defaults: ['page' => 1])] public function list(): ResponseInterface { // ... } #[Route('/{id:\d+}', name: 'view', method: 'GET')] public function view(CurrentRoute $route): ResponseInterface { $id = $route->getArgument('id'); // ... } #[Route(name: 'create', method: 'POST')] public function create(): ResponseInterface { // ... } #[Route('/{id:\d+}', name: 'delete', method: 'DELETE')] public function delete(CurrentRoute $route): ResponseInterface { $id = $route->getArgument('id'); // ... } }
Testing
Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
Code style
Use Rector to make codebase follow some specific rules or use either newest or any specific version of PHP:
./vendor/bin/rector
Dependencies
Use ComposerRequireChecker to detect transitive Composer dependencies.
License
The Yii Routing is free software. It is released under the terms of the Apache-2.0 License.
Please see LICENSE
for more information.
Maintained by Yii Boot.