nasirov / laravel-interactions
Laravel 交互包。
v1.0.5
2018-03-26 11:14 UTC
Requires
- php: >=7.0
- illuminate/console: 5.5.*|5.6.*
- illuminate/support: 5.5.*|5.6.*
Requires (Dev)
- mockery/mockery: ~1.0
- orchestra/testbench: ~3.5|~3.6
- phpunit/phpunit: ~6.0|~7.0
- squizlabs/php_codesniffer: ~3.2
README
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)。有关更多信息,请参阅许可证文件。