Loading src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.phpdeleted 100644 → 0 +0 −86 Changes for src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.php: 0 added lines, 86 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDbImport\CodeGenerator\Helper; use UnicaenApp\Exception\RuntimeException; use UnicaenDbImport\CodeGenerator\Helper; /** * Génération de code SQL concernant une table. * * Version commune à toutes les plateformes de bases de données. * * @author Unicaen */ abstract class TableHelper extends Helper { /** * @param string $tableName * @return string */ abstract public function generateSQLForTableExistenceCheck($tableName); /** * @param array $result * @return bool */ public function convertTableExistenceCheckResultToBoolean(array $result) { return isset($result[0]['table_exists']) && $result[0]['table_exists'] === 1; } /** * @param string $tableName * @param array $columnsAndTypes * @return string */ abstract public function generateSQLForColumnsValidation($tableName, array $columnsAndTypes); /** * @param string $tableName * @param array $result * @param array $expectedColumns * @return null|RuntimeException */ public function convertColumnsValidationResultToException($tableName, array $result, array $expectedColumns) { if (count($result) === count($expectedColumns)) { return null; } $message = "Assurez-vous que les colonnes suivantes existent bien dans la table '$tableName' : "; $message .= implode(', ', $expectedColumns); return new RuntimeException($message); } /** * @param string $tableName * @return string */ abstract public function generateSQLForHistoColumnsValidation($tableName); /** * @param string $tableName * @param array $result * @return null|RuntimeException */ public function convertHistoColumnsValidationBadResultToException($tableName, array $result) { if (count($result) === 3) { return null; } $timestamp = $this->getPlatform()->getDateTimeTzTypeDeclarationSQL([]); $now = $this->getPlatform()->getNowExpression(); $message = "Assurez-vous que les colonnes d'historique suivantes sont présentes dans la table '$tableName' : " . PHP_EOL; $message .= <<<EOT ALTER TABLE $tableName ADD created_on $timestamp DEFAULT $now NOT NULL ; ALTER TABLE $tableName ADD updated_on $timestamp ; ALTER TABLE $tableName ADD deleted_on $timestamp ; EOT; return new RuntimeException($message); } } No newline at end of file Loading
src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.phpdeleted 100644 → 0 +0 −86 Changes for src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.php: 0 added lines, 86 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDbImport\CodeGenerator\Helper; use UnicaenApp\Exception\RuntimeException; use UnicaenDbImport\CodeGenerator\Helper; /** * Génération de code SQL concernant une table. * * Version commune à toutes les plateformes de bases de données. * * @author Unicaen */ abstract class TableHelper extends Helper { /** * @param string $tableName * @return string */ abstract public function generateSQLForTableExistenceCheck($tableName); /** * @param array $result * @return bool */ public function convertTableExistenceCheckResultToBoolean(array $result) { return isset($result[0]['table_exists']) && $result[0]['table_exists'] === 1; } /** * @param string $tableName * @param array $columnsAndTypes * @return string */ abstract public function generateSQLForColumnsValidation($tableName, array $columnsAndTypes); /** * @param string $tableName * @param array $result * @param array $expectedColumns * @return null|RuntimeException */ public function convertColumnsValidationResultToException($tableName, array $result, array $expectedColumns) { if (count($result) === count($expectedColumns)) { return null; } $message = "Assurez-vous que les colonnes suivantes existent bien dans la table '$tableName' : "; $message .= implode(', ', $expectedColumns); return new RuntimeException($message); } /** * @param string $tableName * @return string */ abstract public function generateSQLForHistoColumnsValidation($tableName); /** * @param string $tableName * @param array $result * @return null|RuntimeException */ public function convertHistoColumnsValidationBadResultToException($tableName, array $result) { if (count($result) === 3) { return null; } $timestamp = $this->getPlatform()->getDateTimeTzTypeDeclarationSQL([]); $now = $this->getPlatform()->getNowExpression(); $message = "Assurez-vous que les colonnes d'historique suivantes sont présentes dans la table '$tableName' : " . PHP_EOL; $message .= <<<EOT ALTER TABLE $tableName ADD created_on $timestamp DEFAULT $now NOT NULL ; ALTER TABLE $tableName ADD updated_on $timestamp ; ALTER TABLE $tableName ADD deleted_on $timestamp ; EOT; return new RuntimeException($message); } } No newline at end of file