getAllMnReferences() public méthode

public getAllMnReferences ( )
 /**
  * Saves all eligible entities into the file system storage (the 'db' folder)
  */
 private function saveDatabaseToStorages()
 {
     if (is_dir(VP_VPDB_DIR)) {
         FileSystem::remove(VP_VPDB_DIR);
     }
     FileSystem::mkdir(VP_VPDB_DIR);
     $entityNames = $this->synchronizerFactory->getSynchronizationSequence();
     foreach ($entityNames as $entityName) {
         $this->createVpidsForEntitiesOfType($entityName);
         $this->saveEntitiesOfTypeToStorage($entityName);
     }
     $mnReferenceDetails = $this->dbSchema->getAllMnReferences();
     foreach ($mnReferenceDetails as $referenceDetail) {
         $this->saveMnReferences($referenceDetail);
     }
 }
 /**
  * Saves all already existing meta and M:N references for an entity that wasn't tracked yet
  *
  * @param array $data
  * @param string $entityName
  */
 private function storeRelatedEntities($data, $entityName)
 {
     $id = $data[$this->dbSchemaInfo->getEntityInfo($entityName)->idColumnName];
     foreach ($this->dbSchemaInfo->getAllEntityNames() as $referencedEntityName) {
         $entityInfo = $this->dbSchemaInfo->getEntityInfo($referencedEntityName);
         if ($this->dbSchemaInfo->isChildEntity($referencedEntityName) && $entityInfo->references[$entityInfo->parentReference] === $entityName) {
             $childEntities = $this->database->get_results("SELECT * FROM {$this->dbSchemaInfo->getPrefixedTableName($referencedEntityName)} WHERE `{$entityInfo->parentReference}` = '{$id}'", ARRAY_A);
             foreach ($childEntities as $childEntity) {
                 $childEntity = $this->vpidRepository->replaceForeignKeysWithReferences($referencedEntityName, $childEntity);
                 if (!$this->mirror->shouldBeSaved($referencedEntityName, $childEntity)) {
                     continue;
                 }
                 $id = $childEntity[$entityInfo->idColumnName];
                 $vpid = $this->vpidRepository->getVpidForEntity($referencedEntityName, $id);
                 if ($vpid) {
                     $childEntity[$entityInfo->vpidColumnName] = $vpid;
                 } else {
                     $childEntity = $this->vpidRepository->identifyEntity($referencedEntityName, $childEntity, $childEntity[$entityInfo->idColumnName]);
                 }
                 $childEntity = $this->shortcodesReplacer->replaceShortcodesInEntity($referencedEntityName, $childEntity);
                 $this->mirror->save($referencedEntityName, $childEntity);
             }
         }
     }
     foreach ($this->dbSchemaInfo->getAllMnReferences() as $mnReferenceDetails) {
         if ($mnReferenceDetails['source-entity'] === $entityName) {
             $junctionTable = $mnReferenceDetails['junction-table'];
             $prefixedJunctionTable = $this->dbSchemaInfo->getPrefixedTableName($junctionTable);
             $sourceColumn = $mnReferenceDetails['source-column'];
             $references = $this->database->get_results("SELECT * FROM `{$prefixedJunctionTable}` WHERE `{$sourceColumn}` = '{$id}'", ARRAY_A);
             foreach ($references as $reference) {
                 $reference = $this->vpidRepository->replaceForeignKeysWithReferences($junctionTable, $reference);
                 $this->mirror->save($junctionTable, $reference);
             }
         }
     }
 }
function vp_update_table_ddl_scripts(DbSchemaInfo $dbSchemaInfo, TableSchemaStorage $tableSchemaStorage)
{
    $tableSchemaStorage->deleteAll();
    $entityNames = $dbSchemaInfo->getAllEntityNames();
    foreach ($entityNames as $entityName) {
        $table = $dbSchemaInfo->getPrefixedTableName($entityName);
        $tableSchemaStorage->saveSchema($table);
    }
    $referenceDetails = $dbSchemaInfo->getAllMnReferences();
    foreach ($referenceDetails as $referenceDetail) {
        $table = $dbSchemaInfo->getPrefixedTableName($referenceDetail['junction-table']);
        $tableSchemaStorage->saveSchema($table);
    }
}