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.
phpcommandline/Argument/Option/Flag.class.php

58 lines
1.5 KiB
PHP

<?php
/**
* Déclare la classe CommandLine\Argument\Option\Flag.
*/
namespace CommandLine\Argument\Option;
use CommandLine\Argument\ParseResult;
use InvalidArgumentException;
/**
* 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
*/
public function __construct ($name, $default, $description, $tagLong = null, $tagShort = null) {
parent::__construct($name, $description, $tagLong, $tagShort);
$this->setDefault($default);
}
/**
* @inheritDoc
*/
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
*/
public function setDefault ($default = null) {
if(is_null($default) || !is_bool($default))
throw new InvalidArgumentException('La valeur par défaut DOIT être un booléen');
parent::setDefault($default);
return $this;
}
}