Евгений Ромашкан, ну вот, так же считаю и я, поэтому на вопрос "посоветуйте задачи по ООП" не стал писать свои мысли по этому поводу, а дал ссылку с наибольшим кол-вом популярных задач, а почему там протектед свойства и наследование - автор узнает потом. К тому же в контексте тех задач, где объясняется, почему одна фигура может наследовать другую и в какую сторону это наследование должно происходить, протектед свойства оправданы. С опытом те задачи для авторы покажутся ужасными, возможно, но пока так.
Евгений Ромашкан, эта ссылка была как доказательство, что найти сайт с задачами легко. А что насчет вашего замечания: можно быть диссидентом в программировании и воевать за трушный ООП, говорить, что оно не про наследование, что свойства нужно делать public и не использовать сеттеры/геттеры, классы нужно делать финальными и проч., но начинающий разработчик должен попробовать все, потому что ваши идеи он не способен будет пока реализовать и сделает хуже, чем если будет использовать наследование и protected свойства. Все придет со временем.
Артем Марш, очень, конечно, "уникальная" мысль для подключения авторизации через телеграм, но его использует не так, как вы это себе видите. я видел, чтобы в телегу отправляли уникальный код для подтверждения авторизации, но полностью авторизацию и уже тем более без бд вы не сделаете.
Артем Марш, чтобы не было sql инъекций, защищайте от них код. Хорошо, хотите вы через телеграм. Как вы будете хранить данные? Как вы решите проблему сессий?
JhaoDa, автор ответа как раз и указал это в минусах статики. вы удивились, как это среди минусов указана инициализация, а теперь приводите этот самый пример, указывая, что это минус. вы уж определитесь.
JhaoDa, я опечатался и сразу исправил свой ответ. нет, мне не кажутся странными, такие подходы можно встретить повсюду, и где гарантии, что этот "класс" инициализирован в момент использования? мое возражение было в пользу того, что статика тоже должна быть инициализирована, если предполагает это, а не против true way.
navodchik131, тогда вы можете определять глобальные переменные и делать {{ render(controller()) }}, писать твиг расширения и много чего ещё, чтобы решить проблему
shevchenko__k, в общем случае это просто обработчик с одним методом handle, который принимает на вход структуру данных TaskView, так что их удобно группировать вместе: TaskView, Handler, Form, потом в экшене работать с ними.