nekoos / lumen-response-trick
用可配置的接口替换 lumen 响应外观
1.0.0
2019-09-05 16:04 UTC
Requires
- php: ^7.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-06 03:03:51 UTC
README
这个库为替换 Lumen 默认使用的类提供了一个替代方案
- Illuminate\Http\Response
- Illuminate\Http\JsonResponse;
- Symfony\Component\HttpFoundation\BinaryFileResponse;
- Symfony\Component\HttpFoundation\StreamedResponse;
安装
composer require nekoos/lumen-response-trick
用法
基本用法
假设你已经创建了一个用于通用响应的自定义类
use Illuminate\Http\Response; class MyOverrideResponse extends Response { ... }
以及一个用于 JSON 响应的类
use Illuminate\Http\JsonResponse; class MyOverrideJsonResponse extends Response { ... }
现在你可以将这些行添加到你的初始化加载文件中
# path: bootstrap/app use NekoOs\Override\Laravel\Lumen\Http\ResponseFactory; ResponseFactory::use(MyOverrideResponse::class); ResponseFactory::use(MyOverrideJsonResponse::class);
这是预期的结果
response('common messaje') # return instance of MyOverrideResponse response()->json('common messaje') # return instance of MyOverrideJsonResponse
定制用法
你甚至可以根据特定条件使用响应实例
# path: bootstrap/app use NekoOs\Override\Laravel\Lumen\Http\ResponseFactory; ResponseFactory::use(function (...$arguments) { ... }, Illuminate\Http\Response);
甚至可以注册一个服务提供者
# path: app/Providers/MyResponseServiceProvider.php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Laravel\Lumen\Http\ResponseFactory; use MyOverrideResponse; class MyResponseServiceProvider extends ServiceProvider { /** * register() */ public function register() { $view = $this->app->make('view'); $this->app->singleton(ResponseFactory::class, function () use ($view) { return new MyOverrideResponse($view); }); } }