php - 确定何时在方法链中调用了最后一个方法

标签 php oop method-chaining

我正在为查询构建器使用类似这样的东西:

$queryHandler = new QueryHandler($connection);
$queryHandler->insert("someDataHere")
             ->into("someTable")
             ->when("sleep", 1000);

我希望它在该语句上调用最后一个方法时执行查询,在本例中是 when 函数。

/**
 * User: Bas
 * Date: 8-12-2014
 * Time: 20:11
 */
class QueryFunctions
{

    .....

    /**
     * @param int|float|string| $data The data which is getting inserted
     *
     * @return $this
     */
    public function insert($data) {
        ....
        return $this;
    }

    public function into($table, $execute) {
        ....
        return $this;
    }

    public function when($condition, $functionArgument) {
        switch($condition) {
            case "wait":
                .....
                break;
        }
        return $this;
    }

    /**
     * To prevent instantiation
     */
    private function __construct() {

    }
}

我该怎么做?

最佳答案

一种常见的方法是颠倒函数的顺序。写:

$queryHandler->into("someTable")
             ->when("sleep", 1000)
             ->insert("someDataHere")
             ;

insert() 将触发查询。我想在 PHP 中除了 workers 或 crontabs 等复杂方法之外没有其他方法。

关于php - 确定何时在方法链中调用了最后一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376329/

相关文章:

c++ - 通过默认构造函数插入数据后,我没有得到任何输出,但我不确定为什么不

c++ - 工资单项目中的 fstream 问题

javascript - 方法链接返回未定义

php - 使用 laravel 4.2 和 mailtrap 向电子邮件发送简单的消息

python - 在 Python 中复制对象实例

php - 多个action.class.php

javascript - promise 链接,顺序错误

Python pandas 方法链接 : assign column from strsplit

php - 我应该如何为 CodeIgniter 选择身份验证库?

PHP:foreach 变量赋值和引用:操作方法?