teners/laravel-key-case

Laravel应用程序中请求和响应数据键自动大小写转换的中间件。

v1.1.2 2024-06-25 10:15 UTC

This package is auto-updated.

Last update: 2024-09-25 11:04:47 UTC


README

一个用于转换请求和响应数据键的Laravel包。

Latest Version on Packagist GitHub Tests Action Status issues stars GitHub license Total Downloads

为什么?

在JavaScript和大多数前端技术中,通常使用驼峰式命名法,而在PHP(后端)中使用蛇形命名法,这个包可以轻松实现这一点,您可以在Laravel中像喜欢一样处理数据列,并且您的响应或请求数据将自动转换为任何大小写。

安装

在终端中运行以下命令安装Laravel Key Case

composer require teners/laravel-key-case

发布包配置文件

php artisan vendor:publish --provider="Teners\LaravelKeyCase\LaravelKeyCaseServiceProvider" --tag="key-case-config"

然后您可以自定义每个请求和响应数据使用的大小写。

使用中间件

此包包含两个中间件

  • TransformResponseMiddleware:转换响应数据键。
  • TransformRequestMiddleware:转换请求数据键。

您可以在应用程序的其他地方通过注册它们的别名(或如果您通过API使用它们,直接在API路由组中使用它们)来轻松引用它们

在Laravel 11中,打开/bootstrap/app.php并在其中注册它们

    ->withMiddleware(function (Middleware $middleware) {
        $middleware->api(append: [
            \Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware:class,
        ]);
    })

    // Or to use on individual routes
    
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->alias([
            'convert-response-key' => \Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware:class,
        ]);
    })

在Laravel 9和10中,您可以在/app/Http/Kernel.php中添加它们

    protected $middlewareGroups = [
        'web' => [
            ...
        ],

        'api' => [
            ...
            TransformResponseMiddleware::class,
        ],
    ];

    // Or to use on individual routes

    // Laravel 9 uses $routeMiddleware = [
    //protected $routeMiddleware = [
    // Laravel 10+ uses $middlewareAliases = [
    protected $middlewareAliases = [
        // ...
        'convert-response-key' => \Teners\LaravelKeyCase\Http\Middleware\TransformResponseMiddleware:class,
    ];

忽略路由

您可以在配置文件中指定要忽略请求和响应转换的路由

return [
    // Other configuration options...

    'ignore' => [
        // Common routes to ignore for both request and response transformation
    ],

    'ignoreRequest' => [
        // List of routes to ignore for request transformation
    ],

    'ignoreResponse' => [
        // List of routes to ignore for response transformation
    ],
];

ignore中列出的路由将不会对请求和响应进行转换,而在ignoreRequest中列出的路由将不会对请求进行转换,而在ignoreResponse中列出的路由将忽略响应转换。

贡献

通过Github上的拉取请求进行贡献是welcome

  • 请在README.md中记录您所做的任何更改(如有必要)。
  • 请为每个功能/修复只提交一个拉取请求。

问题

请通过Github Issues标签报告您在使用包时遇到的问题。

测试

要运行测试,请使用

composer test

鸣谢

贡献者

贡献者列表将在此处添加

许可协议

MIT许可协议(MIT)。请参阅许可文件以获取更多信息。