$user->getName() - т.е. при таком вызове вы не обращаетесь к экземлпляру класса $user с публичным методом getName, а вызываете условно СТАТИЧНЫЙ метод abracadabra или не метод, а объект?
или всё же метод getName() где через QB получаете значение поля user из БД?
Вы видиммо не понимаете о чем я пишу? Магия не в том, что метод возвращает. Магия не в том, что ты не понимаешь. Магия в том, что смотря на вызов ты ожидаешь одно, а получаешь другое. Animals::dog('woof') - кажется в класс Animals есть статичный метод dog. Лезешь в класс, а там нет его. Есть колбэк и ты уже работаешь не с классом, а с объектом и не с dog. И вообще он никак не относится к классу, а является частью QB.
Представь, что в php ты присваиваешь переменной значение $name = 'Johny', а по факту создал класс John(). Или пишешь new Animals() , а по факту экранировал переменную - echo $name.
Или все равно не ясно?
Считаете? Хогвартс в разработке лучшие практики?
User::whereName('Johny');
Что здесь, как думаете? Статичный, публичный метод класса?)
Именно так и делаю. Очень удобно приватные и публичные методы определять. Но в процедурном стиле тоже легко. Добавить namespace в файл функций и приватные писать с __ privateFunction() к примеру. Ну или определиться с командой.
Чистое ФП не видел нигде. Впрочем как и чистое ООП. Всегда мешают.
Предлагаешь мне ознакомиться с биографией каждого, кому отвечаю?)
Так как ты понимаешь инкапсуляцию и наследование? В ООП для веба всегда спрашиваю, а как работаешь с SESSION, COOKIE, POST, GET к примеру?
100%. Я на пайтоне начинал. Но единственный на тот момент выход в веб был через django фреймворк. А после решил, что нужен язык, который появился в следствии развития веба и создан для него.
Ключевое. Потом пригодится)
Где писал? Я хочу простоту топора. Писал, что придерживаюсь принципов KISS DRY YAGNI.
Так это вам сразу написал, когда спрашивал про ваш челлендж и кто будет судьей.
Вы путаете мягкое с горячим. Синтаксис языка и магические методы фреймворка