/** * Create the hash for a metamodel item. * * @param GetHashEvent $event The get hash event. * * @return void */ public function getItemHash(GetHashEvent $event) { $data = $event->getData(); if ($data instanceof IItem) { $hash = sprintf('%s_%s', $data->getMetaModel()->getTableName(), $data->get('id')); $event->setHash($hash); } }
/** * Get hash fallback if no hash was created so far. * * @param GetHashEvent $event The subscribed event. * * @return void */ public function getFallback(GetHashEvent $event) { if ($event->getHash()) { return; } $data = $event->getData(); if (is_object($data)) { $event->setHash(spl_object_hash($data)); } else { $event->setHash(md5(json_encode($data))); } }