Пример #1
0
 /**
  * Compares keys
  *
  * @param Table $table
  * @param string $prefix
  *
  * @return string[]
  * @throws \Exception
  */
 private function equalsKeys(Table $table, $prefix)
 {
     $thisKeys = $this->getKeys();
     $tableKeys = $table->getKeys();
     $errors = [];
     foreach ($thisKeys as $key) {
         if (array_key_exists($key->getName(), $tableKeys)) {
             $errors = array_merge($errors, $key->equals($tableKeys[$key->getName()], $prefix));
         }
     }
     $thisKeyNames = array_keys($thisKeys);
     $tableKeyNames = array_keys($tableKeys);
     $diff = array_diff($tableKeyNames, $thisKeyNames);
     if (!empty($diff)) {
         $errors[] = $prefix . 'Extra Keys: ' . "\n" . implode("\n", $diff);
     }
     $diff = array_diff($thisKeyNames, $tableKeyNames);
     if (!empty($diff)) {
         $errors[] = $prefix . 'Missing Keys: ' . "\n" . implode("\n", $diff);
     }
     return $errors;
 }