Ubiquity commandes
Note
Cette partie est accessible à partir des webtools, donc si vous avez créé votre projet avec l’option -a ou avec la commande create-project.
Commandes
A partir des webtools, aller dans la partie commands,
ou directement à l’adresse http://127.0.0.1:8090/Admin/commands
.
Liste des commandes
Activer l’onglet Commands pour obtenir la liste des commandes devtools.
Informations sur une commande
Il est possible d’obtenir de l’aide sur une commande (ce qui produit un résultat équivalent à Ubiquity help cmdName
).
Exécution de commandes
Un clic sur le bouton run d’une commande affiche un formulaire pour saisir ses paramètres (ou l’exécute directement si elle n’en prend aucun).
Après avoir saisi les paramètres, l’exécution produit un résultat.
Suite de commandes
Retourner à l’onglet My commands : Il est possible de sauvegarder une séquence de commandes (avec des paramètres enregistrés), puis d’exécuter cette même séquence :
Création de suite
Cliquer sur add command suite
Ajouter les commandes souhaitées et modifier les paramètres :
La validation génère la suite :
Exécution d’une suite de commandes
En cliquant sur le bouton « run » de la suite, on exécute la liste des commandes qu’elle contient :
Création d’une commande personnalisée
Cliquer sur le bouton Create devtools command.
Saisir les caractéristiques de la nouvelle commande :
Le nom de la commande
Sa valeur : nom de l’argument principal
Les paramètres de la commande : avec plusieurs paramètres, les séparer avec une virgule
La description de la commande
Les alias de la commande : En cas d’alias multiples, utilisez la virgule comme séparateur.
Note
Les commandes personnalisées sont créées dans le dossier app/commands du projet.
La classe générée :
1namespace commands;
2
3use Ubiquity\devtools\cmd\commands\AbstractCustomCommand;
4use Ubiquity\devtools\cmd\ConsoleFormatter;
5use Ubiquity\devtools\cmd\Parameter;
6
7class CreateArray extends AbstractCustomCommand {
8
9 protected function getValue(): string {
10 return 'jsonValue';
11 }
12
13 protected function getAliases(): array {
14 return array("createarray","arrayFromJson");
15 }
16
17 protected function getName(): string {
18 return 'createArray';
19 }
20
21 protected function getParameters(): array {
22 return ['f' => Parameter::create('fLongName', 'The f description.', [])];
23 }
24
25 protected function getExamples(): array {
26 return ['Sample use of createArray'=>'Ubiquity createArray jsonValue'];
27 }
28
29 protected function getDescription(): string {
30 return 'Creates an array from JSON and save to file';
31 }
32
33 public function run($config, $options, $what, ...$otherArgs) {
34 //TODO implement command behavior
35 echo ConsoleFormatter::showInfo('Run createArray command');
36 }
37}
La commande CreateArray implémentée :
1namespace commands;
2
3use Ubiquity\devtools\cmd\commands\AbstractCustomCommand;
4use Ubiquity\devtools\cmd\ConsoleFormatter;
5use Ubiquity\devtools\cmd\Parameter;
6use Ubiquity\utils\base\UFileSystem;
7
8class CreateArray extends AbstractCustomCommand {
9
10 protected function getValue(): string {
11 return 'jsonValue';
12 }
13
14 protected function getAliases(): array {
15 return array(
16 "createarray",
17 "arrayFromJson"
18 );
19 }
20
21 protected function getName(): string {
22 return 'createArray';
23 }
24
25 protected function getParameters(): array {
26 return [
27 'f' => Parameter::create('filename', 'The filename to create.', [])
28 ];
29 }
30
31 protected function getExamples(): array {
32 return [
33 'Save an array in test.php' => "Ubiquity createArray \"{\\\"created\\\":true}\" -f=test.php"
34 ];
35 }
36
37 protected function getDescription(): string {
38 return 'Creates an array from JSON and save to file';
39 }
40
41 public function run($config, $options, $what, ...$otherArgs) {
42 echo ConsoleFormatter::showInfo('Run createArray command');
43 $array = \json_decode($what, true);
44 $error = \json_last_error();
45 if ($error != 0) {
46 echo ConsoleFormatter::showMessage(\json_last_error_msg(), 'error');
47 } else {
48 $filename = self::getOption($options, 'f', 'filename');
49 if ($filename != null) {
50 UFileSystem::save($filename, "<?php\nreturn " . var_export($array, true) . ";\n");
51 echo ConsoleFormatter::showMessage("$filename succefully created!", 'success', 'CreateArray');
52 } else {
53 echo ConsoleFormatter::showMessage("Filename must have a value!", 'error');
54 }
55 }
56 }
57}
Exécution d’une commande personnalisée
La nouvelle commande est accessible depuis les devtools, à condition qu’elle soit bien présente dans le projet :
Ubiquity help createArray
Ubiquity createArray "{\"b\":true,\"i\":5,\"s\":\"string\"}" -f=test.php