/** * 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; }
/** * @covers ::dbGetTableNames * * @depends test_dbGetTableNames_empty * * @param Db $db * * @throws SchemaException * * @throws \Kicaj\DbKit\DatabaseException * @throws \Kicaj\Test\Helper\Loader\FixtureLoaderException * @throws \Kicaj\Tools\Api\JSONParseException * * @return Db */ public function test_dbGetTableNames_results($db) { // Given $this->dbLoadFixtures('SCHEMA1', ['table2.sql', 'table3.sql']); // When $tableNames = $db->dbGetTableNames(); // Then $this->assertSame(['table2', 'table3'], $tableNames); return $db; }