Дмитрий, спасибо вам большое за вебинар. Вы - один из великих столпов PHP-программирования. Каждое ваше видео - кладезь знаний. А сравнение Symfony с фреймворком Spring Boot - просто вишенка на торте. Спасибо за ваш труд!
Ну да ну да не позволяет коллекция проверить тип значения которое она в себя добавляет в PHP... что мешает сделать класс коллекции который принимает только определенные классы объектов? В конце концов хотя б выкинуть исключение при попытке засунуть в коллекцию не тот объект? И еще вопрос: зачем вам сеттеры и геттеры в PHP? Странный для меня пассаж про Объект-Значение. Всегда думал что это для объектов имеющих сложную структуру - например дата, ulr или деньги (где и число и валюта).
Отличные вопросы. По пунктам: 1. Сделать такую коллекцию можно, и она действительно будет выбрасывать исключения - но мы узнаем о проблеме только в runtime, а не на этапе компиляции (как это происходит с дженериками в Java). 2. Сеттеры и геттеры в доменных сущностях действительно нужны не всегда. Но открытый урок - это не реальный проект, здесь неизбежны упрощения. 3. Объекты-значения - это прежде всего типизированные данные. Тип описывает диапазон возможных значений, и этот диапазон мы гарантируем охранными методами. Именно поэтому я предлагаю упаковывать в VO даже те данные, которые не являются составными.
"кому то нравятся геттеры сеттеры кому то нет, но мы не можем без них обойтись" - вообще то можем. и нужно без них обходиться. *показывает схему чистой архитектуры* и далее, начнем со слоя предметной области. это писец какие разные понятия. когда речь заходит про предметную область это прежде всего DDD а не чистая архитектура. нужно разделять эти 2 понятия. "в крайнем случае вы можете переехать на другой фреймворк" вы часто проекты переводили с одного фреймворка на другой? я на 90% уверен что вы этим никогда не занимались. вы возможно переписывали одно на другое но не переносили. то же самое и с базой данных и пр. штуками. любой проект от года и более вы никогда не перенесете на другой фреймворк в названии видео я бы убрал слово professional.
Дмитрий, спасибо вам большое за вебинар. Вы - один из великих столпов PHP-программирования. Каждое ваше видео - кладезь знаний. А сравнение Symfony с фреймворком Spring Boot - просто вишенка на торте. Спасибо за ваш труд!
Хороший вебинар, спасибо
гуд, очень интересно было посмотреть параллельное сравнение с джавой
Вроде как использование постфикса Interface это их внутренняя рекомендация. Сам же PSR не требует использования этого постфикса
Yii базируется на Ruby on rails
Посмотрел видео про php. Уловил основной посыл - лучше использовать java'y вместо php 🙂
Но подача понравилась и информация полезная. Спасибо.
Ну да ну да не позволяет коллекция проверить тип значения которое она в себя добавляет в PHP... что мешает сделать класс коллекции который принимает только определенные классы объектов? В конце концов хотя б выкинуть исключение при попытке засунуть в коллекцию не тот объект? И еще вопрос: зачем вам сеттеры и геттеры в PHP? Странный для меня пассаж про Объект-Значение. Всегда думал что это для объектов имеющих сложную структуру - например дата, ulr или деньги (где и число и валюта).
Отличные вопросы. По пунктам:
1. Сделать такую коллекцию можно, и она действительно будет выбрасывать исключения - но мы узнаем о проблеме только в runtime, а не на этапе компиляции (как это происходит с дженериками в Java).
2. Сеттеры и геттеры в доменных сущностях действительно нужны не всегда. Но открытый урок - это не реальный проект, здесь неизбежны упрощения.
3. Объекты-значения - это прежде всего типизированные данные. Тип описывает диапазон возможных значений, и этот диапазон мы гарантируем охранными методами. Именно поэтому я предлагаю упаковывать в VO даже те данные, которые не являются составными.
"кому то нравятся геттеры сеттеры кому то нет, но мы не можем без них обойтись" - вообще то можем. и нужно без них обходиться.
*показывает схему чистой архитектуры* и далее, начнем со слоя предметной области. это писец какие разные понятия. когда речь заходит про предметную область это прежде всего DDD а не чистая архитектура. нужно разделять эти 2 понятия.
"в крайнем случае вы можете переехать на другой фреймворк" вы часто проекты переводили с одного фреймворка на другой? я на 90% уверен что вы этим никогда не занимались. вы возможно переписывали одно на другое но не переносили. то же самое и с базой данных и пр. штуками. любой проект от года и более вы никогда не перенесете на другой фреймворк
в названии видео я бы убрал слово professional.
Это не обучение, а бубнение себе под нос о том какой я умный.