Почему в фреймворках и библиотеках PHP цепочка вызовов начинается со статичного метода?

98
21 ноября 2019, 04:00

Часто видел в фреймворках (таких как Yii2) цепочки вызовов вроде
Table::find()->select()->where(..)->all()
Погуглив, понял, что это называется текучим интерфейсом, когда метод возвращает $this, чтобы в контексте объекта продолжать использовать методы объекта, но почему первый вызов обычно всегда идет со static метода, который в итоге возвращает новый экземпляр самого себя (new static()) или другого объекта.
Почему не делают просто?

(new Table())->find()->select()->where(..)->all();

Хотя подразумеваю, что смущает оборачивание экземпляра в скобки, но все же?

READ ALSO
Проверка полей формы и wp_redirect

Проверка полей формы и wp_redirect

Есть форма на странице, после отправки данных из формы, создал хук для проверки данных:

140
Форма выбора как в 1С только для Web

Форма выбора как в 1С только для Web

Кто знает есть ли готовое решение для подбора товара или какого другого элемента реализованных как в 1СВ частности интересует реализация...

112
Зачем нужны Thrift, COM, CORBA, STOMP? [закрыт]

Зачем нужны Thrift, COM, CORBA, STOMP? [закрыт]

На wiki очень сложно понять зачем нужны эти вещиПонял что для взаимодействия разных программных компонент(к примеру одна часть работает на Java, другая...

98
Расшифровка данных dzip и deflate

Расшифровка данных dzip и deflate

cURL парсит страницу, но она приходит в сжатом видеСреди headers, которые я отправляю, есть строчка 'Accept-Encoding: dzip, deflate', но, даже если ее убрать - результат...

136