>  기사  >  PHP 프레임워크  >  파이프를 사용하여 Laravel에서 이름을 처리하면 통합 처리가 가능합니다.

파이프를 사용하여 Laravel에서 이름을 처리하면 통합 처리가 가능합니다.

藏色散人
藏色散人앞으로
2020-09-08 09:17:432322검색

튜토리얼 칼럼에서는 Laravel의 파이프라인 사용 예제를 공유할 예정이니, 필요한 친구들에게 도움이 되길 바랍니다!

코드 관점에서 파이프라인의 실제 사용을 소개합니다. 파이프라인에 대한 정보는 인터넷에 많이 있으니 직접 확인해 보세요.

이 블로그에서는 파이프라인을 사용하여 이름을 처리하여 통일된 처리를 달성합니다. 파이프를 사용하여 Laravel에서 이름을 처리하면 통합 처리가 가능합니다.

배경:

현재 찾아볼 수 있는 파이프라인 사용에 대한 소개는 많이 있습니다. 대부분은 소개와 안내에만 중점을 두고 실제로 코드에 깊이 들어가는 부분은 많지 않습니다. 소개에 따르면 파이프라인을 사용하는 데는 몇 가지 장애물이 있습니다. 다음은 참조용으로만 파이프라인을 사용하는 방법에 대한 자세한 코드 예제입니다.
본 소개는 제가 직접 테스트해본 과정을 발췌한 코드입니다. 관심을 끌기 위해 마음에 들지 않으면 비판하지 마십시오.



1. Controller

Router 부분
Route::get('/pipe', ['as'=>'pipe', 'uses'=>'PipeController@index']);
Control code

<?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(&#39;name&#39;);
        // $name = Str::random(10);

        return app(Pipeline::class)
            ->send($name)
            ->through($this->pipes)
            ->then(function ($content) {
                return User::create([
                    &#39;name&#39; => $content,
                    &#39;email&#39;=>Str::random(10).&#39;@gmail.com&#39;,
                    &#39;password&#39;=>Hash::make(&#39;password&#39;),
                ]);
            });
    }
}

2. Pipeline 부분

디렉토리 구조는 다음과 같습니다.

├─app
│  │  User.php
│  ├─Http
│  │  ...│  │
│  ├─Models
│  │  ...│  │
│  ├─Pipes
│  │  │  BothSidesWords.php
│  │  │  LeftWords.php
│  │  │  RightWords.php
│  │  │
│  │  └─Contracts
│  │          PipeContracts.php

인터페이스 code

경로 app/Pipes/Contracts/Pipe.php 아래의 코드는 다음과 같습니다:
     <?php
     namespace App\Pipes\Contracts;
    
     use Closure;
    
     interface PipeContracts
     {
         public function handle($body, Closure $next);
     }
  • interface的代码
    路径app/Pipes/Contracts/Pipe.php下的代码如下:

  •   55ff4fd936c5f0b8992d90bf2a09a3besend($name)
            ->through($this->pipes)
            ->via('myHandleMethod')
            ->then(function ($content) {
                return User::create([
                    'name' => $content,
                    'email'=>Str::random(10).'@gmail.com',
                    'password'=>Hash::make('password'),
                ]);
            });

    这里我们使用管道默认的方法handle,你可以自定义方法名。像下面这样定义myHandleMethod为处理方法名称。

    {
    "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
    }

    你这样定义后,修改你的interface,同时修改你的实现类即可。

    三、结果说明

    访问http://localhost/pipe?name=lisa之后,能成功打印出获取的结果。User세 가지 파이프 클래스의 코드

    LeftWords.php code> Code🎜rrreee🎜<code>LeftWords.php의 코드🎜rrreee🎜BothSidesWords.php의 코드🎜rrreee🎜여기서는 파이프라인핸들의 기본 메서드인 경우 메서드 이름을 맞춤설정할 수 있습니다. 처리 메소드 이름으로 myHandleMethod를 다음과 같이 정의합니다. 🎜rrreee🎜이렇게 정의한 후 인터페이스를 수정하고 동시에 구현 클래스도 수정하세요. 🎜🎜🎜🎜3. 결과 설명🎜🎜http://localhost/pipe?name=lisa에 접속하신 후, 획득한 결과를 성공적으로 인쇄하실 수 있습니다. User 테이블에 성공적으로 저장된 데이터가 있습니다. 🎜아아아아

    위 내용은 파이프를 사용하여 Laravel에서 이름을 처리하면 통합 처리가 가능합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제