nasirov/laravel-interactions

Laravel 交互包。

v1.0.5 2018-03-26 11:14 UTC

This package is auto-updated.

Last update: 2024-09-07 16:13:52 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Laravel 交互包。

要求

在继续之前,请确保已安装所有依赖项。

安装

使用 Composer 获取包

$ composer require nasyrov/laravel-interactions

config/app.php 中注册服务提供者

'providers' => [
    ...
    Nasyrov\Laravel\Interactions\InteractionServiceProvider::class,
    ...
]

用法

让我们使用交互生成一个典型的用户注册流程。

首先,通过命令生成一个 RegisterUser 交互

$ php artisan make:interaction RegisterUser

上述命令将在 app/Interactions/RegisterUser.php 创建一个新文件。让我们打开该文件并根据我们的需求进行定制 – 创建一个新用户

use App\User;
use Illuminate\Http\Request;
use Nasyrov\Laravel\Interactions\Contracts\Interaction;

class RegisterUser implements Interaction
{
    /**
     * Handle the interaction.
     *
     * @return mixed
     */
    public function handle(Request $request)
    {
        return User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);
    }
}

接下来,将 CallsInteractions 特性包含到基控制器中,这样我们就可以在任何扩展该控制器的其他控制器中运行交互

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Nasyrov\Laravel\Interactions\CallsInteractions;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, CallsInteractions, ValidatesRequests;
}

最后,在 UsersController 控制器中运行 RegisterUser 交互,并传递请求对象

use App\Http\Controllers\Controller;
use App\Interaction\RegisterUser;
use Illuminate\Http\Request;

class UsersController extends Controller
{
    public function register(RegisterUserRequest $request)
    {
        return $this->interact(RegisterUser::class, [$request]);
    }
}

测试

$ composer lint
$ composer test

安全

如果您发现任何安全问题,请通过电子邮件 inasyrov@ya.ru 而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件