Rumah > Artikel > rangka kerja php > Ketahui cara menggunakan saluran paip dalam Laravel melalui contoh
Lajur tutorial Laravel akan membawa anda melalui saluran paip dalam Laravel dan berkongsi contoh penggunaan saluran paip dalam Laravel, saya harap ia akan membantu semua orang.
Memperkenalkan penggunaan sebenar saluran paip dari perspektif kod. Terdapat banyak maklumat tentang saluran paip di Internet, jadi semaknya sendiri. Blog ini menggunakan saluran paip untuk memproses nama bagi mencapai pemprosesan bersatu.
Latar belakang: Terdapat banyak pengenalan kepada penggunaan saluran paip yang boleh didapati pada masa ini kebanyakannya hanya menumpukan pada pengenalan dan panduan, dan tidak banyak bahagian yang benar-benar masuk ke dalam kod. Mengikut pengenalan, terdapat halangan tertentu untuk menggunakan saluran paip Berikut adalah contoh kod terperinci menggunakan saluran paip untuk rujukan sahaja. Pengenalan ini adalah petikan kod proses yang sebenarnya saya gunakan, saya mengujinya sendiri dan ia sebenarnya boleh digunakan. Sekadar menarik perhatian, jangan kecam kalau tak suka.
Bahagian penghala
Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);
Kod kawalan
<?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'), ]); }); } }
struktur direktori adalah seperti berikut:
├─app │ │ User.php │ ├─Http │ │ ... │ │ │ ├─Models │ │ ... │ │ │ ├─Pipes │ │ │ BothSidesWords.php │ │ │ LeftWords.php │ │ │ RightWords.php │ │ │ │ │ └─Contracts │ │ PipeContracts.php
interface
kod
Kod di bawah laluan app/Pipes/Contracts/Pipe.php
adalah seperti berikut:
<?php namespace App\Pipes\Contracts; use Closure; interface PipeContracts { public function handle($body, Closure $next); }
Kod tiga kelas paipLeftWords.php
Kod
<?php namespace App\Pipes; use App\Pipes\Contracts\PipeContracts; use Closure; class LeftWords implements PipeContracts{ public function handle($body, Closure $next) { // TODO: Implement handle() method. $body = 'left-'.$body; return $next($body); } }
LeftWords.php
Kod kod<?php namespace App\Pipes; use App\Pipes\Contracts\PipeContracts; use Closure; class RightWords implements PipeContracts{ public function handle($body, Closure $next) { // TODO: Implement handle() method. $body = $body.'-right'; return $next($body); } }
BothSidesWords.php
kod <?php namespace App\Pipes; use App\Pipes\Contracts\PipeContracts; use Closure; class BothSidesWords implements PipeContracts{ public function handle($body, Closure $next) { // TODO: Implement handle() method. $body = '['.$body.']'; return $next($body); } }
Di sini kami menggunakan kaedah lalai saluran paip handle
, anda boleh menyesuaikan nama kaedah. Takrifkan myHandleMethod
sebagai nama kaedah pemprosesan seperti berikut.
return app(Pipeline::class) ->send($name) ->through($this->pipes) ->via('myHandleMethod') ->then(function ($content) { return User::create([ 'name' => $content, 'email'=>Str::random(10).'@gmail.com', 'password'=>Hash::make('password'), ]); });
Selepas anda mentakrifkannya seperti ini, ubah suai interface
anda dan ubah suai kelas pelaksanaan anda pada masa yang sama.
Selepas mengakses http://localhost/pipe?name=lisa
, keputusan yang diperolehi boleh dicetak dengan jayanya. User
Di dalam jadual, terdapat data yang berjaya disimpan.
{ "name": "[left-lisa-right]", "email": "3riSrDuBFv@gmail.com", "updated_at": "2020-09-05T05:57:14.000000Z", "created_at": "2020-09-05T05:57:14.000000Z", "id": 15 }
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Ketahui cara menggunakan saluran paip dalam Laravel melalui contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!