Говорю сразу, знания по ООП очень минимальны, буквально что это такое и примерно как с этим работать. Собственно сабж: открываем примеры кода, написанные на Laravel или Yii2, в частности по работе с ORM (вроде бы), и видим такое:
$flights = App\Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
Хм... ОК, значит метод
where у нас статичный, а остальные нет? Но ведь мы не можем вызывать остальные методы без экземпляра класса Flight, значит используется
__construct()? Но почему следом вызывается статичный метод?
Пытался ковырять исходники фреймов, но, сами знаете, абстракция на абстракции и абстракцией погоняет. Может кто-нибудь разъяснить и показать на небольшом примере как это работает по пунктам?
P.S. А кто-нибудь сможет привести простой пример таких классов? Или хотя бы ткнуть, куда нужно копать, что читать/изучать? Применима ли такая конструкция только к работе с БД? Или можно, например, создать класс, который отвечает за, скажем, постраничную навигацию и такими доп методами можно будет настраивать ее?