Home  >  Article  >  PHP Framework  >  Use pipes to process names in Laravel to achieve unified processing

Use pipes to process names in Laravel to achieve unified processing

藏色散人
藏色散人forward
2020-09-08 09:17:432183browse

The following is a tutorial column to share with you an example of using pipes in Laravel, I hope it will be helpful to friends in need!

Introduces the actual use of pipelines from a code perspective. There is a lot of information about pipelines on the Internet, so check it out by yourself.

This blog uses pipelines to process names to achieve unified processing. Use pipes to process names in Laravel to achieve unified processing

Background:

There are many introductions to the use of pipelines that can be found at present, most of which stay at the introduction and guidance, and there are not many parts that really go deep into the code. According to the introduction, there are certain obstacles to using pipelines. Here is a detailed code example on using pipelines for reference only.
This introduction is a code excerpt of the process that I actually used. I tested it myself and it is actually usable. Just to attract attention, don't criticize if you don't like it.



1. Controller

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

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. Pipeline part

The directory structure is as follows:

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

interface
    code
  • The code under the path

    app/Pipes/Contracts/Pipe.php is as follows:

     

  • The code of the three pipe classes
    LeftWords.php
  • The code


      1b677004bd3985ab0979cb8c27dba346send($name)
            ->through($this->pipes)
            ->via('myHandleMethod')
            ->then(function ($content) {
                return User::create([
                    'name' => $content,
                    'email'=>Str::random(10).'@gmail.com',
                    'password'=>Hash::make('password'),
                ]);
            });
    After you define it like this, modify your interface and modify your implementation class at the same time.

    3. Result Description

    After accessing http://localhost/pipe?name=lisa, the obtained results can be successfully printed.

    User

    In the table, there is data saved successfully.

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

The above is the detailed content of Use pipes to process names in Laravel to achieve unified processing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete