ホームページ > 記事 > PHPフレームワーク > Laravel でパイプを使用して名前を処理し、統一された処理を実現する
以下は、Laravel でのパイプの使用例を共有するチュートリアルのコラムです。困っている友人に役立つことを願っています。
コードの観点からパイプラインの実際の使用法を紹介します。パイプラインに関する情報はインターネット上にたくさんありますので、ご自身で調べてください。このブログでは、パイプラインを使用して名前を処理し、統一処理を実現します。
背景:現在、パイプラインの使用法に関する入門書は数多くありますが、そのほとんどは導入とガイダンスにとどまっており、実際にコードの奥深くまで踏み込んだ部分はあまりありません。 。はじめにによると、パイプラインの使用にはいくつかの障害があるとのことですが、参考までに、パイプラインの使用に関する詳細なコード例を以下に示します。
この紹介は私が実際に使用した処理のコードを抜粋したもので、私自身がテストして実際に使用することができます。注目を集めるためだけに、気に入らない場合は批判しないでください。
1. コントローラー
Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);制御コード
<?php namespace App\Http\Controllers; use App\Pipes\LeftWords; use App\Pipes\RightWords; use App\Pipes\BothSidesWords; use Illuminate\Http\Request; use Illuminate\Pipeline\Pipeline; use App\User; use Illuminate\Support\Str; use Illuminate\Support\Facades\Hash; class PipeController extends Controller { /* 定义管道 * * 第一步处理 * 第二部处理 * 第三部处理 * */ protected $pipes = [ LeftWords::class, RightWords::class, BothSidesWords::class, ]; // 首页 public function index(Request $request){ $name = $request->input('name'); // $name = Str::random(10); return app(Pipeline::class) ->send($name) ->through($this->pipes) ->then(function ($content) { return User::create([ 'name' => $content, 'email'=>Str::random(10).'@gmail.com', 'password'=>Hash::make('password'), ]); }); } }
2. パイプライン部分
ディレクトリ構造は次のとおりです。
├─app │ │ User.php │ ├─Http │ │ ...│ │ │ ├─Models │ │ ...│ │ │ ├─Pipes │ │ │ BothSidesWords.php │ │ │ LeftWords.php │ │ │ RightWords.php │ │ │ │ │ └─Contracts │ │ PipeContracts.phpinterface
app/Pipes/Contracts/Pipe.php にあるコード
<pre class="brush:php;toolbar:false;"> <?php
namespace App\Pipes\Contracts;
use Closure;
interface PipeContracts
{
public function handle($body, Closure $next);
}</pre>
<pre class="brush:php;toolbar:false"> e2e3658ec482d41ddea73862440626c8send($name)
->through($this->pipes)
->via('myHandleMethod')
->then(function ($content) {
return User::create([
'name' => $content,
'email'=>Str::random(10).'@gmail.com',
'password'=>Hash::make('password'),
]);
});</pre>
このように定義したら、interface
を変更し、同時に実装クラスも変更します。
3. 結果の説明
テーブルには、正常に保存されたデータがあります。 rree
以上がLaravel でパイプを使用して名前を処理し、統一された処理を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。