如何使用Laravel中的方法创建函数

时间:2018-01-17 08:36:31

标签: php laravel function laravel-5.3 fluent-interface

我需要创建一个这种类型的函数,我不知道它是如何完成的,我想学习

该函数添加到数据库,并接收一些参数

  event($user)->balande(2.00)->points(300);

示例https://github.com/spatie/laravel-activitylog

activity('default')
   ->performedOn($anEloquentModel)
   ->causedBy($user)
   ->withProperties(['customProperty' => 'customValue'])
   ->log('Look, I logged something');

1 个答案:

答案 0 :(得分:1)

它实际上非常简单:第一个函数返回一个对象实例,后续的方法调用应用于此实例(它们都返回$this,允许您在之后链接其他方法调用)。看看https://en.wikipedia.org/wiki/Fluent_interface

<?php

class Thing{
  public function doThat(){
      // [do something interesting in this object]

      return $this;
  }

  public function doSomethingElse(){
      // [do something interesting in this object]

      return $this;
  }
}

function Something(){
    return new Thing();
}

Something()->doThat()->doSomethingElse();