У меня есть приложение PHP MVC, использующее Zend Framework. Как показано в кратком обзоре, я использую 3 слоя для модели:
- Модель (бизнес-логика)
- Картограф данных
- Шлюз данных таблиц (или объект доступа к данным, то есть один класс на таблицу SQL)
Модель разработана в UML и полностью независима от БД.
Моя проблема : у меня не может быть нескольких экземпляров одного и того же "экземпляра / записи".
Например, : если я получу, например, пользователя " Чак Норрис " с id = 5, это создаст новый экземпляр модели, члены которого будут заполнены преобразователь данных (преобразователь данных запрашивает шлюз данных таблицы, который запрашивает БД). Затем, если я изменю имя на «Duck Norras», не сохраню его сразу в БД и не перезагружу того же пользователя в другую переменную, у меня возникнут проблемы с «синхронизацией» ... ( разные экземпляры для та же " запись " )
Прямо сейчас я использую шаблон Multiton / Identity Map : как и Singleton, но несколько экземпляров индексируются по ключу (который в нашем примере - идентификатор пользователя) Но это сильно усложняет мою разработку и мои тесты тоже.
Как это правильно сделать?