Overview

Namespaces

  • Contrib
    • Bundle
      • CoverallsBundle
        • Console
        • Entity
      • CoverallsV1Bundle
        • Api
        • Collector
        • Command
        • Config
        • Entity
          • Git
    • Component
      • File
      • Log
      • System
        • Git
  • Guzzle
    • Batch
      • Exception
    • Cache
    • Common
      • Exception
    • Http
      • Curl
      • Exception
      • Message
      • QueryAggregator
    • Inflection
    • Iterator
    • Log
    • Parser
      • Cookie
      • Message
      • UriTemplate
      • Url
    • Plugin
      • Async
      • Backoff
      • Cache
      • Cookie
        • CookieJar
        • Exception
      • CurlAuth
      • ErrorResponse
        • Exception
      • History
      • Log
      • Md5
      • Mock
      • Oauth
    • Service
      • Builder
      • Command
        • Factory
        • LocationVisitor
          • Request
          • Response
      • Description
      • Exception
      • Resource
    • Stream
  • PHP
  • Psr
    • Log
  • Symfony
    • Component
      • Config
        • Definition
          • Builder
          • Exception
        • Exception
        • Loader
        • Resource
        • Util
      • Console
        • Command
        • Formatter
        • Helper
        • Input
        • Output
        • Tester
      • EventDispatcher
        • Debug
      • Finder
        • Adapter
        • Comparator
        • Exception
        • Expression
        • Iterator
        • Shell
      • Stopwatch
      • Yaml
        • Exception

Classes

  • ArgvInput
  • ArrayInput
  • Input
  • InputArgument
  • InputDefinition
  • InputOption
  • StringInput

Interfaces

  • InputInterface
  • Overview
  • Namespace
  • Class
  • Tree
  • Todo
  1: <?php
  2: 
  3: /*
  4:  * This file is part of the Symfony package.
  5:  *
  6:  * (c) Fabien Potencier <fabien@symfony.com>
  7:  *
  8:  * For the full copyright and license information, please view the LICENSE
  9:  * file that was distributed with this source code.
 10:  */
 11: 
 12: namespace Symfony\Component\Console\Input;
 13: 
 14: /**
 15:  * Represents a command line argument.
 16:  *
 17:  * @author Fabien Potencier <fabien@symfony.com>
 18:  *
 19:  * @api
 20:  */
 21: class InputArgument
 22: {
 23:     const REQUIRED = 1;
 24:     const OPTIONAL = 2;
 25:     const IS_ARRAY = 4;
 26: 
 27:     private $name;
 28:     private $mode;
 29:     private $default;
 30:     private $description;
 31: 
 32:     /**
 33:      * Constructor.
 34:      *
 35:      * @param string  $name        The argument name
 36:      * @param integer $mode        The argument mode: self::REQUIRED or self::OPTIONAL
 37:      * @param string  $description A description text
 38:      * @param mixed   $default     The default value (for self::OPTIONAL mode only)
 39:      *
 40:      * @throws \InvalidArgumentException When argument mode is not valid
 41:      *
 42:      * @api
 43:      */
 44:     public function __construct($name, $mode = null, $description = '', $default = null)
 45:     {
 46:         if (null === $mode) {
 47:             $mode = self::OPTIONAL;
 48:         } elseif (!is_int($mode) || $mode > 7 || $mode < 1) {
 49:             throw new \InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode));
 50:         }
 51: 
 52:         $this->name        = $name;
 53:         $this->mode        = $mode;
 54:         $this->description = $description;
 55: 
 56:         $this->setDefault($default);
 57:     }
 58: 
 59:     /**
 60:      * Returns the argument name.
 61:      *
 62:      * @return string The argument name
 63:      */
 64:     public function getName()
 65:     {
 66:         return $this->name;
 67:     }
 68: 
 69:     /**
 70:      * Returns true if the argument is required.
 71:      *
 72:      * @return Boolean true if parameter mode is self::REQUIRED, false otherwise
 73:      */
 74:     public function isRequired()
 75:     {
 76:         return self::REQUIRED === (self::REQUIRED & $this->mode);
 77:     }
 78: 
 79:     /**
 80:      * Returns true if the argument can take multiple values.
 81:      *
 82:      * @return Boolean true if mode is self::IS_ARRAY, false otherwise
 83:      */
 84:     public function isArray()
 85:     {
 86:         return self::IS_ARRAY === (self::IS_ARRAY & $this->mode);
 87:     }
 88: 
 89:     /**
 90:      * Sets the default value.
 91:      *
 92:      * @param mixed $default The default value
 93:      *
 94:      * @throws \LogicException When incorrect default value is given
 95:      */
 96:     public function setDefault($default = null)
 97:     {
 98:         if (self::REQUIRED === $this->mode && null !== $default) {
 99:             throw new \LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.');
100:         }
101: 
102:         if ($this->isArray()) {
103:             if (null === $default) {
104:                 $default = array();
105:             } elseif (!is_array($default)) {
106:                 throw new \LogicException('A default value for an array argument must be an array.');
107:             }
108:         }
109: 
110:         $this->default = $default;
111:     }
112: 
113:     /**
114:      * Returns the default value.
115:      *
116:      * @return mixed The default value
117:      */
118:     public function getDefault()
119:     {
120:         return $this->default;
121:     }
122: 
123:     /**
124:      * Returns the description text.
125:      *
126:      * @return string The description text
127:      */
128:     public function getDescription()
129:     {
130:         return $this->description;
131:     }
132: }
133: 
php-coveralls API documentation generated by ApiGen 2.8.0