laravel源码中有一个Illuminate\Pipeline\Pipeline类可以用来做一些特别的设计
    例如对业务代码进行分层
    下面是一个例子

    1. class WelcomeController extends Controller
    2. {
    3. public function index()
    4. {
    5. $pipes = [
    6. UserCreateInputTransformer::class,//输入参数转换
    7. UserCreateVerify::class,//验证逻辑
    8. UserCreate::class,//业务逻辑
    9. UserCreateOutputTransformer::class,//输出参数转换
    10. ];
    11. $result = App::make(Pipeline::class)
    12. ->send(['data' => Request::all()])
    13. ->through($pipes)
    14. ->then(function ($content) {
    15. return $content;
    16. });
    17. return $result;
    18. }