37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# cli
|
|
|
|
* [ ] implémenter les arguments avancés avec le préfixe "++" sur la description
|
|
* [ ] pour le nombre d'arguments, supporter l'alias `*` pour `0..N` et `+` pour `1..N`
|
|
* [ ] transformer un schéma en définition d'arguments, un tableau en liste d'arguments, et vice-versa
|
|
|
|
actuellement, même si la surcharge d'option fonctionne, l'affichage de l'aide est incorrecte
|
|
* possibilité de merger *une définition d'option*
|
|
* lors de la surcharge d'une définition d'option, certaines options sont supprimées. quand toutes les options sont supprimées, la définition disparait.
|
|
* possibilité de modifier une précédente définition, notamment en rajoutant "disabled" => true pour désactiver (supprimer) la définition
|
|
* cela implique d'avoir un moyen de sélectionner une précédente définition, e.g
|
|
~~~php
|
|
const ARGS = [
|
|
## exemple n°1
|
|
["-o", "--option"],
|
|
["extends" => "-o", "disabled" => true],
|
|
# effet: la définition -o,--option est supprimée
|
|
|
|
## exemple n°2
|
|
# étendre une précédente définition
|
|
["-a", "--first"],
|
|
["extends" => "-a", "extends_delete" => ["--first"], "--second"],
|
|
# résultat final: ["-a", "--second"]
|
|
|
|
## exemple n°3
|
|
# créer une définition à partir d'une autre
|
|
["merge" => ["-b", "--premier"], "merge_delete" => ["--premier"], "--deuxieme"],
|
|
# résultat final: ["-b", "--deuxieme"]
|
|
];
|
|
~~~
|
|
* pour faciliter l'implémentation de toutes ces fonctionnalités, faire une classe Option qui contient toutes les méthodes appropriées
|
|
|
|
faire une implémentation SimpleArgsParser qui ne supporte pas les commandes, uniquement les options
|
|
|
|
puis faire une implémentation ArgsParser qui supporte les commandes, et les options dynamiques
|
|
|
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary |