olliecodes / laravel-route-registrars
通过基于对象的方法注册路由的替代方案。
Requires
- php: ^8.0
- laravel/framework: ^9.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-16 16:56:22 UTC
README
Laravel 路由注册器
本包引入了一种基于对象的简洁方法,用于在 Laravel 应用程序中定义路由。有关基本原理的教程可以在 Laravel 新闻 上找到,由 @juststeveking 编写。
安装
通过 composer 安装。
$ composer require olliecodes/laravel-route-registrars
全新 Laravel 安装
如果您要在全新 Laravel 安装上安装此包,您在处理路由之前需要运行以下命令。
php artisan init:routing
这将使用与路由注册器兼容的文件覆盖 app/Providers/RouteServiceProvider.php
文件,并创建默认路由注册器以替换 routes/web.php
和 routes/api.php
。
现有 Laravel 安装
如果您已经有了应用程序,建议您阅读 Laravel 新闻文章,该文章介绍了这种方法,因为您将需要手动重构路由服务提供者和路由文件。
要求
本包需要以下内容;
- PHP >= 8.0(包括 8)。
laravel/framework
>= 9.0
用法
要注册新路由,您可以将它们的定义添加到 RouteRegistrar
的 map
方法中,或者创建一个新的。
创建新的注册器
以下命令将在 app/Http/Routes
中创建一个新的注册器。
php artisan make:registrar {name}
{name}
可以是任何有效的类名,或者子命名空间。例如,使用 Auth\\GuestRoutes
将创建 app/Http/Routes/Auth/GuestRoutes.php
。
创建注册器时有一些选项可用。
--C|hasChildren
创建具有 MapRouteRegistrars
特性的路由注册器,以便可以映射子注册器。
--W|web
在 app/Http/Routes/Web
中创建路由注册器,为那些正在分割 Web 和 API 路由的人保留了此选项。
--A|API
与上述选项完全相同,但它在 app/Http/Routes/Api
中创建它。
注册注册器
任何希望注册注册器的类都可以使用以下特质。
OllieCodes\Registrars\Concerns\MapsRouteRegistrars
这样做之后,有三种注册方式。所有这些都需要以下类的实例。
Illuminate\Contracts\Routing\Registrar
此接口由 Laravel Router
类实现,因此您可以使用它。
注册多个
使用 Laravel 路由器实例和注册器的完全限定类名数组调用以下方法。
mapRouteRegistrars(Registrar $router, array $registrars)
注册一个
使用 Laravel 路由器实例和注册器的完全限定类名调用以下方法。
mapRouteRegistrar(Registrar $router, string $registrar)
从路径注册
使用 Laravel 路由器实例和注册器所在的路径数组调用以下方法。
此方法将使用文件返回的顺序,因此请考虑路由顺序优先级。
loadRouteRegistrars(Registrar $router, array $paths)