You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
/**
|
|
* Déclare la classe CommandLine\Argument\Option\Flag.
|
|
*/
|
|
namespace CommandLine\Argument\Option;
|
|
|
|
use Fidit\v3\Exception\InvalidArgument;
|
|
use CommandLine\Argument\ArgumentAbstract;
|
|
use CommandLine\Argument\ParseResult;
|
|
|
|
/**
|
|
* Option de type "flag" contenant True ou False.
|
|
*
|
|
* Si fourni, retournera la valeur inverse de {@see getDefault() getDefault}
|
|
*
|
|
* @see FlagReverse
|
|
*
|
|
* @package CommandLine\Argument\Option
|
|
*/
|
|
class Flag extends OptionAbstract {
|
|
/**
|
|
* Crée un nouvel argument de type option.
|
|
*
|
|
* @param string $name Le nom.
|
|
* @param boolean $default La valeur par défaut.
|
|
* @param string|null $description La description.
|
|
* @param string|null $tagLong Le tag long.
|
|
* @param string|null $tagShort Le tag court.
|
|
*
|
|
* @throws InvalidArgument Si l'un des paramètres n'est pas correct
|
|
*/
|
|
public function __construct ($name, $default, $description, $tagLong = null, $tagShort = null) {
|
|
parent::__construct($name, $description, $tagLong, $tagShort);
|
|
$this->setDefault($default);
|
|
}
|
|
|
|
public function parse ($args) {
|
|
if($this->_parseTag($args[0]))
|
|
return new ParseResult(true, 1);
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Définit le valeur par défaut
|
|
*
|
|
* @param boolean $default La valeur par défaut.
|
|
*
|
|
* @return $this
|
|
*
|
|
* @throws InvalidArgument Si la valeur n'est pas un booléen.
|
|
*/
|
|
public function setDefault ($default = null) {
|
|
if(is_null($default) || !is_bool($default))
|
|
throw new InvalidArgument($default, 'La valeur par défaut DOIT être un booléen');
|
|
|
|
parent::setDefault($default);
|
|
return $this;
|
|
}
|
|
} |