diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/doctrine | 4 | ||||
| -rwxr-xr-x | bin/mode.php | 65 |
2 files changed, 67 insertions, 2 deletions
diff --git a/bin/doctrine b/bin/doctrine index 8017267..8cfd5d0 100755 --- a/bin/doctrine +++ b/bin/doctrine | |||
| @@ -5,9 +5,9 @@ | |||
| 5 | use Doctrine\ORM\Tools\Console\ConsoleRunner; | 5 | use Doctrine\ORM\Tools\Console\ConsoleRunner; |
| 6 | use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider; | 6 | use Doctrine\ORM\Tools\Console\EntityManagerProvider\SingleManagerProvider; |
| 7 | 7 | ||
| 8 | chdir('bin'); // pour être au même niveau que l'appli dans /public | 8 | chdir(dirname(__FILE__)); // pour être au même niveau que l'appli dans /public |
| 9 | 9 | ||
| 10 | require('../src/Config.php'); | 10 | require('../src/service/Config.php'); |
| 11 | Config::load('../config/config.ini'); | 11 | Config::load('../config/config.ini'); |
| 12 | 12 | ||
| 13 | require '../src/model/doctrine-bootstrap.php'; // relatif | 13 | 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 @@ | |||
| 1 | #!/usr/bin/env php | ||
| 2 | <?php | ||
| 3 | // bin/mode.php | ||
| 4 | |||
| 5 | declare(strict_types=1); | ||
| 6 | |||
| 7 | use App\Entity\AppMetadata; | ||
| 8 | use Doctrine\ORM\EntityManager; | ||
| 9 | |||
| 10 | |||
| 11 | chdir(dirname(__FILE__)); // pour être au même niveau que l'appli dans /public | ||
| 12 | require "../vendor/autoload.php"; | ||
| 13 | Config::load('../config/config.ini'); // pour TABLE_PREFIX | ||
| 14 | require '../src/model/doctrine-bootstrap.php'; | ||
| 15 | |||
| 16 | const ALLOWED_MODES = ['run', 'maintenance']; | ||
| 17 | |||
| 18 | // aide | ||
| 19 | $aide = "Usage : php bin/mode.php <mode>\nModes disponibles : " . implode(', ', ALLOWED_MODES) . "\n"; | ||
| 20 | // version avec deux paramètres proposée par claude | ||
| 21 | /*$aide = "Usage : php bin/mode.php <mode> [--by <auteur>] | ||
| 22 | Modes disponibles : " . implode(', ', ALLOWED_MODES) . " | ||
| 23 | Exemple : php bin/mode.php maintenance --by alice\n";*/ | ||
| 24 | if($argc < 2 || in_array($argv[1], ['--help', '-h'])){ | ||
| 25 | echo $aide; | ||
| 26 | exit(0); | ||
| 27 | } | ||
| 28 | |||
| 29 | // validation du mode | ||
| 30 | if(!in_array($argv[1], ALLOWED_MODES)){ | ||
| 31 | echo "Erreur : mode '$argv[1]' invalide.\n"; | ||
| 32 | echo "Modes disponibles : " . implode(', ', ALLOWED_MODES) . "\n"; | ||
| 33 | exit(1); | ||
| 34 | } | ||
| 35 | |||
| 36 | // paramètre --by | ||
| 37 | /*$by = 'cli'; | ||
| 38 | for ($i = 2; $i < $argc; $i++) { | ||
| 39 | if ($argv[$i] === '--by' && isset($argv[$i + 1])) { | ||
| 40 | $by = $argv[$i + 1]; | ||
| 41 | break; | ||
| 42 | } | ||
| 43 | }*/ | ||
| 44 | |||
| 45 | // changement BDD | ||
| 46 | try{ | ||
| 47 | AppMode::load($entityManager); | ||
| 48 | $current = AppMode::get(); | ||
| 49 | |||
| 50 | if($current === $argv[1]){ | ||
| 51 | echo "Le mode est déjà '$argv[1]', aucun changement.\n"; | ||
| 52 | exit(0); | ||
| 53 | } | ||
| 54 | |||
| 55 | AppMode::set($entityManager, $argv[1]); | ||
| 56 | echo "Mode changé : '$current' => '$argv[1]'\n"; | ||
| 57 | |||
| 58 | // le mode deux paramètres permettra d'indiquer son nom et automatiquement de d'enregistrer la date du changement | ||
| 59 | //AppMode::set($entityManager, $argv[1], 'system'); | ||
| 60 | //echo "Mode changé : '$current' => '$argv[1]' (par $by)\n"; | ||
| 61 | } | ||
| 62 | catch(LogicException $e){ | ||
| 63 | echo "Erreur : " . $e->getMessage() . "\n"; | ||
| 64 | exit(1); | ||
| 65 | } \ No newline at end of file | ||
