moeen / photon-lumen

SRP (单一职责原则) 的 Lumen 扩展

v0.1 2021-09-20 08:30 UTC

This package is auto-updated.

Last update: 2024-09-20 15:11:50 UTC


README

Lumen 的 SRP (单一职责原则) 扩展。

如何使用

  1. 使用以下命令安装包
composer require moeen-basra/photon-lumen
  1. 打开文件 bootstrap/app.php 并注册 Photon\Foundation\Providers\HttpServiceProvider
$app->register(Photon\Foundation\Providers\HttpServiceProvider::class);
  1. 打开文件 app/Http/Controllers/Controller.php 并替换以下代码

use Laravel\Lumen\Routing\Controller as BaseController;

为以下

use Photon\Foundation\Controller as BaseController;

  1. 打开文件 app/Exceptions/Handler\Photon\Foundation\Exceptions\Handler\Handler 继承

  2. 现在您需要在 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));
    }
}