У меня есть класс с именем Component, который является базовым классом для многих других типов компонентов (например, Text, Image ...) и выглядит так:
function __construct($data) {...}
abstract public function build();
...other methods, getters and setters
Способ, которым этиКомпоненты используются следующим образом:
- Пользователь загружает настройки для создания определенного типа компонента
- Настройки компонента очищаются и сохраняются в БД
- Пользователь, напозднее определяет, какой из их компонентов использовать, и отправляет соответствующие данные
В настоящее время я получаю настройки для каждого компонента через объект JSON, который конечный пользователь отправляет мне ... так что яЯ хотел бы сделать, это построить валидатор / очиститель, чтобы помочь мне в части # 2 выше.
Весь код валидации уже есть в каждом компоненте через их методы получения и установки, так что в идеале я бы хотелсделать, это попытаться создать компонент с настройками, предоставленными пользователем, и посмотреть, были ли какие-либо ошибки.
Единственная проблема с этим, каждый компонент требует инициализации данных - столько, сколькоВнутренние функции требуют, чтобы данные были установлены.
Я думал о нескольких способах решения этой проблемы (см. ниже), но я не фанат ни одного из них.Поэтому я хотел бы, чтобы ваши идеи о том, как справиться с этим.
- Разделите настройки на их собственный класс, чтобы компоненты и валидатор могли использовать их, не требуя каких-либо «данных»
- Используйте фиктивные данные для компонентов