From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/tbl_relation.php | 90 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 srcs/phpmyadmin/tbl_relation.php (limited to 'srcs/phpmyadmin/tbl_relation.php') diff --git a/srcs/phpmyadmin/tbl_relation.php b/srcs/phpmyadmin/tbl_relation.php new file mode 100644 index 0000000..89da496 --- /dev/null +++ b/srcs/phpmyadmin/tbl_relation.php @@ -0,0 +1,90 @@ +getParameter('db'); +$table = $containerBuilder->getParameter('table'); + +/** @var DatabaseInterface $dbi */ +$dbi = $containerBuilder->get(DatabaseInterface::class); + +$options_array = [ + 'CASCADE' => 'CASCADE', + 'SET_NULL' => 'SET NULL', + 'NO_ACTION' => 'NO ACTION', + 'RESTRICT' => 'RESTRICT', +]; +/** @var Relation $relation */ +$relation = $containerBuilder->get('relation'); +$cfgRelation = $relation->getRelationsParam(); +$tbl_storage_engine = mb_strtoupper( + $dbi->getTable($db, $table)->getStatusInfo('Engine') +); +$upd_query = new Table($table, $db, $dbi); + +/* Define dependencies for the concerned controller */ +$dependency_definitions = [ + 'options_array' => $options_array, + 'cfgRelation' => $cfgRelation, + 'tbl_storage_engine' => $tbl_storage_engine, + 'existrel' => [], + 'existrel_foreign' => [], + 'upd_query' => $upd_query, +]; +if ($cfgRelation['relwork']) { + $dependency_definitions['existrel'] = $relation->getForeigners( + $db, + $table, + '', + 'internal' + ); +} +if (Util::isForeignKeySupported($tbl_storage_engine)) { + $dependency_definitions['existrel_foreign'] = $relation->getForeigners( + $db, + $table, + '', + 'foreign' + ); +} + +/** @var Definition $definition */ +$definition = $containerBuilder->getDefinition(RelationController::class); +array_map( + static function (string $parameterName, $value) use ($definition) { + $definition->replaceArgument($parameterName, $value); + }, + array_keys($dependency_definitions), + $dependency_definitions +); + +/** @var RelationController $controller */ +$controller = $containerBuilder->get(RelationController::class); +$controller->indexAction(); -- cgit