public function createEntityChangeInfo($entity, $entityName, $action, $customTags = [], $customFiles = []) { $entityInfo = $this->dbSchema->getEntityInfo($entityName); $vpid = $entity[$entityInfo->vpidColumnName]; $actionsInfo = $this->actionsInfoProvider->getActionsInfo($entityName); $automaticallySavedTags = $actionsInfo->getTags(); $tags = ChangeInfoUtils::extractTags($automaticallySavedTags, $entity, $entity); $tags = array_merge($tags, $customTags); return new EntityChangeInfo($entityInfo, $actionsInfo, $action, $vpid, $tags, $customFiles); }
/** * Find all changeInfos and group them according to provided indicies in $changeInfoList by VPID * @param ChangeInfo[] $changeInfoList * @param array $indicies * @return array */ private function getChangeInfosByIndicies($changeInfoList, $indicies) { $entities = []; foreach ($changeInfoList as $key => $changeInfo) { /** @var EntityChangeInfo $changeInfo */ if (ChangeInfoUtils::changeInfoRepresentsEntity($changeInfo, 'post') && in_array($changeInfo->getAction(), $indicies)) { $entities[$changeInfo->getId()][$changeInfo->getAction()][] = $key; } } return $entities; }
private function containsTermChangeInfo($changeInfoList) { return ArrayUtils::any($changeInfoList, function ($changeInfo) { return ChangeInfoUtils::changeInfoRepresentsEntity($changeInfo, 'term'); }); }