Кого именно?
Вы спрашиваете, почему «контроллер называют не форматтер или презентер»? Ну наверное потому, что контроллер ничего не форматирует и не показывает ))
Не извиняйтесь за ошибки, все мы люди, все ошибаемся.
В одном из комментариев Вы чуть-чуть наезжаете на Yii2
Наезжаю? Вы шутите? Я считаю его примером анти-дизайна и анти-проектирования, и как подобный пример всегда подаю студентам.
Это настолько нелепая архитектурная конструкция, что даже не знаешь, с чего и начать его разбор :) Наверное с самого факта его существования :)
Внутреннюю потребность творить лучше направить на что-то полезное не одному только Вам, Вы так не считаете?
Я именно так и считаю. Иначе бы не писал это статью.
А какая цель публикации? Чего Вы хотели ей добиться?
Чистое, незамутненное творчество. Чего пытался добиться Малевич, выставляя «Черный квадрат»? Я не знаю, но предполагаю, что однажды творчество превращается в потребность. У вас не так?
То, что я пишу комментарии на Хабре с включенным Т9
Где хоть вы его откопали? У вас реально что-то вроде Siemens S45?
никак не говорит обо мне, как о программисте, не так ли?
Хрен знает. Общее впечатление составляет. Неаккуратненько (с).
Автор (и авторы) внимательно смотрели туда. Однако пока что ни один коммент на хабре не заставил их заплакать и отказаться от развития своих библиотек. Наверное, в этом что-то есть?
Нет. Не полностью. Я за такой подход там, где он оправдан. Например метод filter() в коллекции просто обязан возвращать новую коллекцию, иначе мы не сможем построить fluent interface.
А чем плох вариант $obj->getBar()->setBaz($value)?
Неплох. И даже был в изначальном варианте Std. Выпилен из текущей версии за лёгкой избыточностью, предложение по новой реализации таких сеттеров сейчас обсуждается.
Кстати, у вас в коде ошибка. Метод getBar() вернет значение свойства bar и дальше цепочка прервётся.
Это внутренняя потребность творить. Разве вам она не знакома?
вы НЕ поняли разницу между Value Object и Entity
В данной статье мы не обсуждаем библиотеку ValueObjects. Впрочем, если вам хочется — пожалуйста. Но конструктивное обсуждение будет в статье, посвященной именно ей.
если бы вы написали, так, мол и так, учебных целей для делаю свой Фреймворк, ищу помощи от сообщества, оцените, пожалуйста!
Я не ищу помощи. Я буду ей благодарен, но не ищу. Особенно я не ищу помощи от тех, кто пишет «фреймоврки», «Непонравился», «Come Review»
Еще раз прошу прощения
Вам не за что просить прощения. Вы просто высказали своё мнение. Спасибо. Любое мнение ценно.
P.S. Зачем всё время «Фреймворк» с большой буквы? Это имеет какой-то смысл?
Не совсем. FI легко реализуется методами, которые заканчиваются на return $this;
Я же имею в виду то, что в PHP штатными средствами легко сделать
$arr = [];
$arr['foo']['bar'] = 42;
и это совершенно валидный код, но нельзя сделать:
$obj = new SomeClass;
$obj->foo->bar = 42;
Мы этот недостаток в StdGetSetTrait исправляем. Коряво, но по-другому пока никак. Нужно готовить RFC для внесения в сам язык чего-то вроде нативного JSON, чтобы получить возможность создавать одной строкой объекты любой вложенности.
Потому что статья не об этом.
Здесь нелогичность. В моем примере — не имеет. Оно создается на лету.
«Удобство» в данном конкретном случае не есть критерий качества кода.
Я вам уже неоднократно ответил.
Результат, аналогичный показанному вами поведению, достигается строчкой
$model->updated = date('Y-m-d H:i:s')
где-то в коде соответствующего процесса.
Вы спрашиваете, почему «контроллер называют не форматтер или презентер»? Ну наверное потому, что контроллер ничего не форматирует и не показывает ))
Остаётся только надеяться, что однажды сможете!
Вы не поняли. Не поняли зачем.
Честно — не знаю, что вам ответить. Ну ОК, постарайтесь понять :) Спросите, если что будет непонятно, хорошо?
Наезжаю? Вы шутите? Я считаю его примером анти-дизайна и анти-проектирования, и как подобный пример всегда подаю студентам.
Это настолько нелепая архитектурная конструкция, что даже не знаешь, с чего и начать его разбор :) Наверное с самого факта его существования :)
спасибо!
P.S. я действительно тут скромно обошел, думаю, как лучше сделать. но вы, разумеется, правы.
Поэтому принять такое предложение не считаю возможным.
Я именно так и считаю. Иначе бы не писал это статью.
Чистое, незамутненное творчество. Чего пытался добиться Малевич, выставляя «Черный квадрат»? Я не знаю, но предполагаю, что однажды творчество превращается в потребность. У вас не так?
Где хоть вы его откопали? У вас реально что-то вроде Siemens S45?
Хрен знает. Общее впечатление составляет. Неаккуратненько (с).
Хорошо.
Нет. Не полностью. Я за такой подход там, где он оправдан. Например метод filter() в коллекции просто обязан возвращать новую коллекцию, иначе мы не сможем построить fluent interface.
Неплох. И даже был в изначальном варианте Std. Выпилен из текущей версии за лёгкой избыточностью, предложение по новой реализации таких сеттеров сейчас обсуждается.
Кстати, у вас в коде ошибка. Метод getBar() вернет значение свойства bar и дальше цепочка прервётся.
А уж что говорили Расмусу — я не могу написать по цензурным соображениям!
Это внутренняя потребность творить. Разве вам она не знакома?
В данной статье мы не обсуждаем библиотеку ValueObjects. Впрочем, если вам хочется — пожалуйста. Но конструктивное обсуждение будет в статье, посвященной именно ей.
Я не ищу помощи. Я буду ей благодарен, но не ищу. Особенно я не ищу помощи от тех, кто пишет «фреймоврки», «Непонравился», «Come Review»
Вам не за что просить прощения. Вы просто высказали своё мнение. Спасибо. Любое мнение ценно.
P.S. Зачем всё время «Фреймворк» с большой буквы? Это имеет какой-то смысл?
Состояние в данном случае — побочный эффект применения ООП и наследования. Расскажите, как сделать правильнее.
Не сумел ответить. Ваш вопрос не содержит позитивного или негативного утверждения. Всё равно что спросить «а ваши родители знают, что вы гей?»
Это фактически заглушка, которая никогда не будет использоваться. Кроме как для зеленых тестов.
Если встретите где-то goto — сообщите сразу :)
Впрочем, как учебный пример — прекрасно. Сразу можно разобрать опасности такого подхода и показать на примере php-инъекцию.
P.S. Про библиотеку сериализации будет другая статья.
Не совсем. FI легко реализуется методами, которые заканчиваются на return $this;
Я же имею в виду то, что в PHP штатными средствами легко сделать
и это совершенно валидный код, но нельзя сделать:
Мы этот недостаток в StdGetSetTrait исправляем. Коряво, но по-другому пока никак. Нужно готовить RFC для внесения в сам язык чего-то вроде нативного JSON, чтобы получить возможность создавать одной строкой объекты любой вложенности.
Я буду 10 раз перечитывать комментарий перед отправкой!