nonetallt/laravel-publish-routes

将路由作为JSON文件发布,该文件可以被route-repository JavaScript包使用。

1.0.0 2021-11-05 14:08 UTC

This package is auto-updated.

Last update: 2024-09-05 19:56:54 UTC


README

route-repository JavaScript包提供的服务器端集成。

此包允许您生成包含Laravel应用程序路由的JSON文件。

安装

使用composer

composer require nonetallt/laravel-publish-routes --dev

基本用法

发布配置

php artisan vendor:publish --provider="Nonetallt\Laravel\Route\Publish\ServiceProvider"

当您的路由更新时运行此命令

php artisan route:publish

为了获得最佳的流程体验,建议您使用带有文件监视器的任务运行器,以在您的路由更新时自动运行此命令。

注意事项

请注意,解析正则表达式匹配URI模式可能会导致混乱 - 这种路由不应被发布。

配置

outputPath

  • 类型:字符串

生成的路由文件的文件路径。应该有json扩展名。

outputJsonFlags

  • 类型:整数掩码

json_encode的第二个参数。用于对输出结果进行编码。

skipNameless

  • 类型:布尔值

是否应忽略未定义名称的路由。route-repository包依赖于路由名称,所以此选项所做的是,当您尝试发布没有名称的路由时,会抛出Nonetallt\Laravel\Route\Publish\Exception\NamelessRouteException。这是为了方便起见:您可以将此选项设置为true,这样您就不会忘记命名路由,然后发布命令会静默地忽略它。

generateExtra

  • 类型:可调用函数(Illuminate\Routing\Route) : 数组 | false

如果设置为false,则不会为发布路由生成额外字段。如果设置为回调,该函数将Illuminate\Routing\Route作为第一个参数,并应返回一个具有字符串键的数组。这允许您使用路由数据发布您认为重要的任何额外信息。

includeFilters

  • 类型:数组[可调用函数(Illuminate\Routing\Route) : bool | Nonetallt\Laravel\Route\Publish\Contract\RouteFilter]

可以包含以下内容的数组

  • 可调用函数,接受Illuminate\Routing\Route作为第一个参数并返回布尔值。
  • 实现Nonetallt\Laravel\Route\Publish\Contract\RouteFilter接口的实例。

这些过滤器定义了在发布路由时应包含哪些路由。不匹配这些过滤器的路由将不会发布。

excludeFilters

  • 类型:数组[可调用函数(Illuminate\Routing\Route) : bool | Nonetallt\Laravel\Route\Publish\Contract\RouteFilter]

可以包含以下内容的数组

  • 可调用函数,接受Illuminate\Routing\Route作为第一个参数并返回布尔值。
  • 实现Nonetallt\Laravel\Route\Publish\Contract\RouteFilter接口的实例。

这些过滤器定义了在发布路由时应排除哪些路由。匹配这些过滤器的路由将不会发布。覆盖includeFilters。如果您只想定义要排除的路由,则应使用includeFilters中的Nonetallt\Laravel\Route\Publish\Filter\EverythingFilter,然后排除所需的路由。

可用过滤器

以下过滤器由包默认提供

  • Nonetallt\Laravel\Route\Publish\Filter\CallableFilter
  • Nonetallt\Laravel\Route\Publish\Filter\EverythingFilter
  • Nonetallt\Laravel\Route\Publish\Filter\MiddlewareFilter
  • Nonetallt\Laravel\Route\Publish\Filter\NameFilter
  • Nonetallt\Laravel\Route\Publish\Filter\NothingFilter
  • Nonetallt\Laravel\Route\Publish\Filter\PrefixFilter

您可以直接使用回调快速定义自己的自定义过滤器,因为回调将被转换为Nonetallt\Laravel\Route\Publish\Filter\CallableFilter的实例。有关可用的方法,请参阅Route API

如果您希望创建更复杂的过滤器,例如在多个项目中共享的过滤器,您应该实现Nonetallt\Laravel\Route\Publish\Contract\RouteFilter接口。该接口只有一个必须实现的方法

public function shouldFilter(Illuminate\Routing\Route $route) : bool;