private static function callPostSaveHook(AbstractEntity $entity) { $entity->postSaveHook(); foreach ($entity->getData() as $fieldInstance) { if ($fieldInstance instanceof AbstractEntity) { self::callPostSaveHook($fieldInstance); } } }
public static function save(AbstractEntity $entity, array $options = array()) { $collection = self::getCollection(); $entity->validate(); self::callPreSaveHook($entity); $entityToSave = $entity->toArray(); try { $collection->save($entityToSave, $options); $entity->setField('_id', $entityToSave['_id']); self::callPostSaveHook($entity); } catch (\Exception $e) { throw new MapperException($e->getMessage(), $e->getCode(), $e->getPrevious()); } return $entity; }