Вызов нескольких методов

Рейтинг: 0Ответов: 2Опубликовано: 01.12.2014

Привет. Помогите мне понять, как мне вызвать методы из класса PHP таким образом:

$class->test_method('param1')->test_method2('param2');

Иначе приходится делать не совсем удобно:

$class->test_method('param1');
$class->test_method2('param2');

Ответы

▲ 8

Эта штука называется Fluent Interface и зачастую подвергается критике из-за пары аспектов. Хотя, как можно видеть по многочисленным примерам, используется много где, и библиотеки от этого не поумирали.

class FluentInterfaceImplementation
{
    public function methodA()
    {
        // ...
        return $this;
    }
    public function methodB()
    {
        // ...
        return $this;
    }
}

$object = new FluentInterfaceImplementation;
$object->methodA()->methodB();
▲ 1

Не знаю, как в PHP, но в общей концепции ООП, чтобы такое делать

test_method('param1')

должен возвращать вам

$class