Есть класс ObjectWatcher реализующий шаблон unit of work. При создании доменных объектов они сразу помечаются как новые и добавляются в массив внутри класса ObjectWatcher. Таким образом если я создаю доменный объект:
$user = new \app\classes\User('Bob', 'хэш', 'bob@test.ru',$container->make('UserMapper'));
что бы занести его в базу мне нужно вызвать единственный метод:
ObjectWatcher::instance()->performOperations();
В данном случае performOperations() пробегает в foreach'e массив всех новых объектов и вызывает их метод mapper()->insert($object) где $object является текущим доменным объектом. Все хорошо работает, но допустим у пользователя есть еще и другие сущности, например - изображения.
$user = new \app\classes\User('Bob', 'хэш', 'bob@test.ru',$container->make('UserMapper'));
$image = new \app\classes\Image(заполняю конструктор, $container->make('ImageMapper'));
$user->addImage($image);
ObjectWatcher::instance()->performOperations();
Будет вставлено 2 записи. пользователь и изображение соответственно, но мне нужно установить связь между двумя таблицами users и images. Каким образом будет грамотнее организовать подобное?