moeen / photon-lumen
SRP (单一职责原则) 的 Lumen 扩展
v0.1
2021-09-20 08:30 UTC
Requires
- php: ^8.0
- ext-json: *
Requires (Dev)
- laravel/lumen-framework: ^8.1
README
Lumen 的 SRP (单一职责原则) 扩展。
如何使用
- 使用以下命令安装包
composer require moeen-basra/photon-lumen
- 打开文件
bootstrap/app.php
并注册Photon\Foundation\Providers\HttpServiceProvider
$app->register(Photon\Foundation\Providers\HttpServiceProvider::class);
- 打开文件
app/Http/Controllers/Controller.php
并替换以下代码
use Laravel\Lumen\Routing\Controller as BaseController;
为以下
use Photon\Foundation\Controller as BaseController;
-
打开文件
app/Exceptions/Handler
从\Photon\Foundation\Exceptions\Handler\Handler
继承 -
现在您需要在
app
文件夹中创建以下目录。
|-- app
| |-- Domains
| |-- Features
| |-- Operations
太好了,现在您可以开始了。
以下是用于提供功能的控制器的示例代码。
namespace App\Http\Controllers\Api\Auth; use Illuminate\Http\JsonResponse; use Photon\Foundation\Controller; use App\Features\Api\Auth\RegisterFeature; class AuthController extends Controller { public function __construct() { $this->middleware('auth:api', ['only' => 'me', 'logout', 'refresh']); } /** * Register user * * @return JsonResponse */ public function register(): JsonResponse { return $this->serve(RegisterFeature::class); } }
以下是运行作业和操作的功能的示例代码。
namespace App\Features\Api\Auth; use Photon\Foundation\Feature; use App\Operations\Auth\RegisterOperation; use Photon\Domains\Http\Jobs\JsonResponseJob; use App\Domains\Auth\Jobs\Register\ValidateRegisterRequestJob; class RegisterFeature extends Feature { public function handle() { $input = $this->run(ValidateRegisterRequestJob::class); $data = $this->run(RegisterOperation::class, compact('input')); return $this->run(new JsonResponseJob($data)); } }