From 3b369122645b07b290f7fcc7bccb4787745cd5ea Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 24 Mar 2026 22:39:29 +0100 Subject: =?UTF-8?q?mode=20maintenance,=20optimisation=20moins=20de=20contr?= =?UTF-8?q?=C3=B4les=20en=20mode=20run,=20dossier=20service=20et=20d=C3=A9?= =?UTF-8?q?placement=20fichiers,=20sessions=20et=20entit=C3=A9=20User=20pr?= =?UTF-8?q?=C3=A9par=C3=A9es=20=C3=A0=20l'impl=C3=A9mentation=20hypoth?= =?UTF-8?q?=C3=A9tique=20des=20r=C3=B4les,=20entit=C3=A9=20AppMetadata,=20?= =?UTF-8?q?meilleure=20s=C3=A9curit=C3=A9=20de=20fillStartingDatabase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/doctrine | 4 ++-- bin/mode.php | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100755 bin/mode.php (limited to 'bin') diff --git a/bin/doctrine b/bin/doctrine index 8017267..8cfd5d0 100755 --- a/bin/doctrine +++ b/bin/doctrine @@ -5,9 +5,9 @@ use Doctrine\ORM\Tools\Console\ConsoleRunner; use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider; -chdir('bin'); // pour être au même niveau que l'appli dans /public +chdir(dirname(__FILE__)); // pour être au même niveau que l'appli dans /public -require('../src/Config.php'); +require('../src/service/Config.php'); Config::load('../config/config.ini'); require '../src/model/doctrine-bootstrap.php'; // relatif diff --git a/bin/mode.php b/bin/mode.php new file mode 100755 index 0000000..552ce4e --- /dev/null +++ b/bin/mode.php @@ -0,0 +1,65 @@ +#!/usr/bin/env php +\nModes disponibles : " . implode(', ', ALLOWED_MODES) . "\n"; +// version avec deux paramètres proposée par claude +/*$aide = "Usage : php bin/mode.php [--by ] + Modes disponibles : " . implode(', ', ALLOWED_MODES) . " + Exemple : php bin/mode.php maintenance --by alice\n";*/ +if($argc < 2 || in_array($argv[1], ['--help', '-h'])){ + echo $aide; + exit(0); +} + +// validation du mode +if(!in_array($argv[1], ALLOWED_MODES)){ + echo "Erreur : mode '$argv[1]' invalide.\n"; + echo "Modes disponibles : " . implode(', ', ALLOWED_MODES) . "\n"; + exit(1); +} + +// paramètre --by +/*$by = 'cli'; +for ($i = 2; $i < $argc; $i++) { + if ($argv[$i] === '--by' && isset($argv[$i + 1])) { + $by = $argv[$i + 1]; + break; + } +}*/ + +// changement BDD +try{ + AppMode::load($entityManager); + $current = AppMode::get(); + + if($current === $argv[1]){ + echo "Le mode est déjà '$argv[1]', aucun changement.\n"; + exit(0); + } + + AppMode::set($entityManager, $argv[1]); + echo "Mode changé : '$current' => '$argv[1]'\n"; + + // le mode deux paramètres permettra d'indiquer son nom et automatiquement de d'enregistrer la date du changement + //AppMode::set($entityManager, $argv[1], 'system'); + //echo "Mode changé : '$current' => '$argv[1]' (par $by)\n"; +} +catch(LogicException $e){ + echo "Erreur : " . $e->getMessage() . "\n"; + exit(1); +} \ No newline at end of file -- cgit v1.2.3