Exemplo n.º 1
0
 /**
  * Get create statements string.
  *
  * @param string $format The format of the file: self::FORMAT_*
  *
  * @throws SchemaException
  *
  * @return array|string
  */
 public function getCreateStatements($format = null)
 {
     $exportType = Arr::get($this->config, self::CONFIG_KEY_EXPORT_FORMAT);
     // Override format from config.
     if ($format != null) {
         $exportType = $format;
     }
     $aine = Arr::get($this->config, self::CONFIG_KEY_AINE, false);
     $createStatements = [];
     $tableNames = array_merge($this->db->dbGetTableNames(), $this->db->dbGetViewNames());
     foreach ($tableNames as $tableName) {
         $table = $this->db->dbGetTableDefinition($tableName);
         $createStatements[$table->getName()] = $table->getCreateStatement($aine);
     }
     $ret = null;
     switch ($exportType) {
         case self::FORMAT_PHP_ARRAY:
             $ret = $createStatements;
             break;
         case self::FORMAT_PHP_FILE:
             $createStatements = array_map(['\\Kicaj\\Tools\\Helper\\Str', 'oneLine'], $createStatements);
             $configArray = var_export($createStatements, true);
             $ret = "<?php\n\n" . '$createStatements = ' . $configArray . ";\n\n";
             $ret .= 'return $createStatements;' . "\n";
             break;
         case self::FORMAT_SQL:
             $createStatements = array_map(['\\Kicaj\\Tools\\Helper\\Str', 'oneLine'], array_values($createStatements));
             $ret = implode("\n", array_values($createStatements)) . "\n";
             break;
         default:
             throw new SchemaException('unknown format: ' . $exportType);
     }
     return $ret;
 }
Exemplo n.º 2
0
 /**
  * @dataProvider getProvider
  *
  * @covers ::get
  *
  * @param string $key
  * @param mixed  $default
  * @param mixed  $expected
  * @param array  $array
  */
 public function test_get($key, $default, $expected, $array)
 {
     // When
     $got = Arr::get($array, $key, $default);
     // Then
     $this->assertSame($expected, $got);
 }