PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/docs/languages/fr/modules/zend.console.getopt.fetching.rst

https://github.com/gullij/zf2-documentation
ReStructuredText | 145 lines | 100 code | 45 blank | 0 comment | 0 complexity | 71e876ee4fa6ec8f90fb3198cc9fc9f1 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. .. EN-Revision: none
  2. .. _zend.console.getopt.fetching:
  3. Extraire les options et les arguments
  4. =====================================
  5. Après avoir déclaré les options que l'objet ``Zend\Console\Getopt`` doit identifier, et fourni les arguments de
  6. la ligne de commande ou un tableau, vous pouvez interroger l'objet pour connaître les options indiquées par un
  7. utilisateur lors d'un appel à votre programme en ligne de commande. La classe implémente les méthodes magiques
  8. ainsi vous pouvez interroger directement par les noms d'options.
  9. L'analyse des données est reportée jusqu'à ce que vous invoquiez pour la première fois l'objet
  10. ``Zend\Console\Getopt`` pour découvrir si une option était renseignée, l'objet exécute alors son analyse. Ceci
  11. permet plusieurs appels de méthode pour configurer les options, arguments, messages d'aide, et les options de
  12. configuration, avant que l'analyse ne soit lancée.
  13. .. _zend.console.getopt.fetching.exceptions:
  14. Manipuler les exceptions Getopt
  15. -------------------------------
  16. Si l'utilisateur a donné des options invalides sur la ligne de commande, la fonction d'analyse syntaxique lève
  17. une ``Zend\Console_Getopt\Exception``. Vous devrez récupérer cette exception dans votre code d'application. Vous
  18. pouvez utiliser la méthode ``parse()`` pour forcer l'objet à analyser les arguments. C'est utile parce que vous
  19. pouvez invoquer ``parse()`` dans un bloc **try**. S'il passe, vous pouvez être sûrs que l'analyse syntaxique ne
  20. lèvera pas d'exception de nouveau. L'exception est lancée via une méthode personnalisée ``getUsageMessage()``,
  21. qui retourne comme une chaîne de caractère l'ensemble formaté des messages d'utilisation pour toutes les options
  22. déclarées.
  23. .. _zend.console.getopt.fetching.exceptions.example:
  24. .. rubric:: Récupérer une exception Getopt
  25. .. code-block:: php
  26. :linenos:
  27. try {
  28. $opts = new Zend\Console\Getopt('abp:');
  29. $opts->parse();
  30. } catch (Zend\Console_Getopt\Exception $e) {
  31. echo $e->getUsageMessage();
  32. exit;
  33. }
  34. Les cas, l'analyse syntaxique lève une exception, incluent :
  35. - L'option passée n'est pas reconnue.
  36. - L'option nécessite un paramètre mais aucun n'est fourni.
  37. - Le paramètre d'option n'a pas le bon type. Par exemple, une chaîne de caractères non-numérique quand un
  38. nombre entier a été exigé.
  39. .. _zend.console.getopt.fetching.byname:
  40. Extraire les options par nom
  41. ----------------------------
  42. Vous pouvez employer la méthode ``getOption()`` pour connaître la valeur d'une option. Si l'option avait un
  43. paramètre, cette méthode retourne la valeur du paramètre. Si l'option n'avait aucun paramètre mais que
  44. l'utilisateur en indiquait sur dans la ligne de commande, la méthode retournerait ``TRUE``. Sinon la méthode
  45. retournerait ``NULL``.
  46. .. _zend.console.getopt.fetching.byname.example.setoption:
  47. .. rubric:: Utiliser getOption()
  48. .. code-block:: php
  49. :linenos:
  50. $opts = new Zend\Console\Getopt('abp:');
  51. $b = $opts->getOption('b');
  52. $p_parameter = $opts->getOption('p');
  53. De manière alternative, vous pouvez employer la fonction magique ``__get()`` pour rechercher la valeur d'une
  54. option comme si c'était une variable de membre de classe. La méthode magique ``__isset()`` est également
  55. implémentée.
  56. .. _zend.console.getopt.fetching.byname.example.magic:
  57. .. rubric:: Utiliser les méthodes magiques \__get() et \__isset()
  58. .. code-block:: php
  59. :linenos:
  60. $opts = new Zend\Console\Getopt('abp:');
  61. if (isset($opts->b)) {
  62. echo "J'ai recu l'option b.\n";
  63. }
  64. $p_parameter = $opts->p; // null si non fourni
  65. Si vos options sont déclarées avec des alias, vous pouvez employer n'importe quel alias de l'option dans les
  66. méthodes ci-dessus.
  67. .. _zend.console.getopt.fetching.reporting:
  68. Extraire les options
  69. --------------------
  70. Il y a plusieurs méthodes pour extraire l'ensemble complet des options fournies par l'utilisateur dans la ligne de
  71. commande courante.
  72. - Comme pour une chaîne de caractères : employez la méthode ``toString()``. Les options sont retournées sous
  73. la forme d'une chaîne de caractère où les paires ``drapeau=valeur`` sont séparées par des espaces. La valeur
  74. d'une option qui n'a pas de paramètre est la chaîne "``TRUE``".
  75. - Comme un tableau : employez la méthode ``toArray()``. Les options sont retournées dans un tableau de chaînes
  76. de caractères indexé par des nombres, les chaînes de drapeau sont suivies par les chaînes de paramètres
  77. éventuels.
  78. - Comme une chaîne au format *JSON*\  : employez la méthode ``toJson()``.
  79. - Comme une chaîne au format *XML*\  : employez la méthode ``toXml()``.
  80. Dans toutes les méthodes de déchargement ci-dessus, la chaîne du drapeau est la première chaîne dans la liste
  81. des alias correspondants. Par exemple, si les noms d'alias d'option étaient déclarés comme "``verbose|v``",
  82. alors la première chaîne, "``verbose``", est employé comme nom de l'option. Le nom du drapeau d'option n'inclut
  83. pas le tiret précédent.
  84. .. _zend.console.getopt.fetching.remainingargs:
  85. Extraction des arguments sans option
  86. ------------------------------------
  87. Après que les arguments d'option et ainsi que les paramètres de la ligne de commande ont été analysés, il peut
  88. exister des arguments additionnels restants. Vous pouvez interroger ces arguments en utilisant la méthode
  89. ``getRemainingArgs()``. Cette méthode renvoie un tableau de chaîne qui ne fait partie d'aucune option.
  90. .. _zend.console.getopt.fetching.remainingargs.example:
  91. .. rubric:: Utiliser getRemainingArgs()
  92. .. code-block:: php
  93. :linenos:
  94. $opts = new Zend\Console\Getopt('abp:');
  95. $opts->setArguments(array('-p', 'p_parameter', 'nomdefichier'));
  96. $args = $opts->getRemainingArgs(); // retourne array('nomdefichier')
  97. ``Zend\Console\Getopt`` supporte la convention *GNU* selon laquelle un argument se composant d'un double-tiret
  98. signifie la fin des options. Tous les arguments suivant celui-ci doivent être traités en tant qu'arguments sans
  99. options. C'est utile si vous avez un argument sans options qui commence par un tiret. Par exemple : "``rm --
  100. -nomdefichier-avec-tiret``".