diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a6f64b24f896c6611c66fa2068e8f33cd2bedee..2dbfc7c99b0fe92450130b8b8292eca5a46c1d92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +1.0.3 (29/11/2024) +------------------ + +- [Fix] Problème de chargement de DDL avec Oracle : pas de schémas +- [Fix] Récupération plus propre & souple du printWorkingDirectory (PWD) en CLI + + 1.0.2 (21/11/2024) ------------------ diff --git a/src/Command/LoadCommand.php b/src/Command/LoadCommand.php index e7908305bfc609aa58d355d2f8ee3a6eb242d412..2a83f9ac1f9830852e03652f281059fe43ef4957 100644 --- a/src/Command/LoadCommand.php +++ b/src/Command/LoadCommand.php @@ -11,6 +11,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; use Unicaen\BddAdmin\BddAwareTrait; use Unicaen\BddAdmin\Data\DataManager; use Unicaen\BddAdmin\Ddl\Ddl; +use Unicaen\BddAdmin\Util; /** * Description of LoadCommand @@ -37,7 +38,7 @@ class LoadCommand extends Command $filename = $input->getArgument('filename'); if (!str_starts_with($filename, DIRECTORY_SEPARATOR)){ - $filename = $_SERVER['PWD'].DIRECTORY_SEPARATOR.$filename; + $filename = Util::getPrintWorkingDirectory().DIRECTORY_SEPARATOR.$filename; } if (!file_exists($filename)){ diff --git a/src/Command/SaveCommand.php b/src/Command/SaveCommand.php index d0220f57079f220b5d6cc85b0a48fec02e28cf90..00b9925eae91b77a427844348982775e532c5a8d 100644 --- a/src/Command/SaveCommand.php +++ b/src/Command/SaveCommand.php @@ -11,6 +11,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; use Unicaen\BddAdmin\BddAwareTrait; use Unicaen\BddAdmin\Data\DataManager; use Unicaen\BddAdmin\Ddl\Ddl; +use Unicaen\BddAdmin\Util; /** * Description of SaveCommand @@ -37,7 +38,7 @@ class SaveCommand extends Command $filename = $input->getArgument('filename'); if (!str_starts_with($filename, DIRECTORY_SEPARATOR)){ - $filename = $_SERVER['PWD'].DIRECTORY_SEPARATOR.$filename; + $filename = Util::getPrintWorkingDirectory().DIRECTORY_SEPARATOR.$filename; } if (file_exists($filename)){ diff --git a/src/Ddl/Ddl.php b/src/Ddl/Ddl.php index 536ac11fd592aca10a927ec47d4be16fd71e318e..f4def404cb31db0e1643dcb7b3f0dca64030a49d 100644 --- a/src/Ddl/Ddl.php +++ b/src/Ddl/Ddl.php @@ -208,9 +208,11 @@ class Ddl implements Iterator, ArrayAccess $filters = DdlFilters::normalize($filters); foreach ($this->data as $ddlType => $ddlConf) { - foreach ($ddlConf as $name => $null) { - if (!$filters[$ddlType]->match($name)) { - unset($this->data[$ddlType][$name]); + if (is_array($ddlConf)) { + foreach ($ddlConf as $name => $null) { + if (!$filters[$ddlType]->match($name)) { + unset($this->data[$ddlType][$name]); + } } } } diff --git a/src/Util.php b/src/Util.php index fadce8b2ac4d90674afd0e23f6a516ef426cb866..ce4dcee8e71cbf38299f6df5c36f4f1e29d60f9b 100644 --- a/src/Util.php +++ b/src/Util.php @@ -66,4 +66,20 @@ class Util return var_export($var, true); } } + + + + static public function getPrintWorkingDirectory(): string + { + // Au besoin, la variable SCRIPT_LAUNCH_DIR pourra être initialisée en BASH : export SCRIPT_LAUNCH_DIR="$PWD" + $dir = getenv('SCRIPT_LAUNCH_DIR'); + if (!$dir){ + $dir = getenv('PWD'); + } + if (!$dir){ + $dir = getcwd(); + } + + return $dir; + } } \ No newline at end of file