【问题标题】:How to create method chaining like laravel in native php?如何在原生 php 中创建类似 laravel 的方法链?
【发布时间】:2021-10-25 04:17:37
【问题描述】:

在 laravel 中我经常看到方法链如下:

类::method1()->method2->method3->method4()->etc();

或者laravel中的例子

Route::get()->name()->middleware();

我的问题是如何在原生 php 上创建一个简单的 sintax?

【问题讨论】:

  • 我认为你可以做一些研究,如果有问题来这里寻求帮助,就可以实现这一目标

标签: php laravel


【解决方案1】:

这背后的基础是创建具有返回$this 的函数的类。示例:

class Table {
    private $color;
    private $legs;

    public function color($color){
        $this->color = $color;
        return $this;
    }
    public function legs($legs){
        $this->legs = $legs;
        return $this;
    }
}

这允许以下代码:

$table = new Table(); 
$table->color('black')->legs(4);

【讨论】:

  • 谢谢,但在我的示例中,Route 不是变量,它是一个没有实例化的类
  • 其实你访问的Route类就是所谓的Facade。查看laravel.com/docs/8.x/facades
  • 谢谢你,请你创建一个简单的例子,就像你的第一个答案一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
相关资源
最近更新 更多