Сергей Протько: про декорирование впервые слышу. По поводу LSP я рассчитывал на составление мной уникальных полей и методов. Сейчас думаю вернуть всё в один класс.
Сергей Протько: Мне кажется неудобным работать с вложенным объектом. Раньше я мог просто пройти один объект собрать все данные и провести сохранения, а теперь мне еще нужно задуматься о вложенном объекте.
Сергей Протько: прочитал тут. То есть мне для каждого пользовательского поля создавать объект? или создать общий объект для всех полей? для меня это ново, объясните, как вы это видите?
Сергей Протько: Fields несет в себе дополнительные поля будущей таблицы orders. В этом особого смысла нет, все поля можно перенести в Order. Я вынес их в отдельный класс для удобства и разделения служебной информации и информации введенной пользователями. а дополнительная вложенность усложнит работу с данными.
Сергей Протько: Ага, полезно. Я планирую статусы хранить в БД. Только думаю что нужно статусы Новый и Удаленный как-то зарезервировать и скорее всего не на уровне БД, а на уровне класса. Потому что у них иные задачи, особенно у статуса Удаленные.
Сергей Протько: тут нет товаров. Лендинг предлагает одну услугу. Категории предназначены для сортировки заказов. Категории могут быть: Новые, Принятые, Неизвестные, Удаленные. Это для удобной обработки заказов админами.
становится грустно, что нет ни одной CMS ориентированной исключительно на разработчика
Сергей Протько решил пока не загоняться и сделать так, как вы посоветовали, без динамического добавления полей. Вот набросал диаграмму:
Пока что для меня важно только валидация данных. По-моему ничего лишнего. Только думаю связанность классов Order и Category лишняя, может в атрибуте category хранить только id категории.
Если я в статическом свойстве Category буду хранить все категории, то не трудно будет по id найти нужную мне категорию.
Сергей Протько: не знаю хороших книг по грамотному программированию на php с описанием архитектуры и всего что влияет на качество кода. У нас в городе в книжных нет таких, есть только азы программирования на php. В интернет-магазинах книжку не полистаешь и не оценишь - полезна ли она тебе будет.
так может и назовите его OrderRepository? Хотя это мелочи.
Мне бы побольше почитать о этих мелочах - о именовании методов и классов. Я слабо знаком с терминологией и архитектурой web'а, меня не учили этому в технаре.
Я даже думаю о смене работы, может начать сначала, устроиться в фирму по web'у джуниором и уже там расти в этой области.