* @copyright 2007 David JEAN LOUIS * @license http://opensource.org/licenses/mit-license.php MIT License * @version CVS: $Id$ * @link http://pear.php.net/package/Console_CommandLine * @since File available since release 0.1.0 * @filesource */ /** * Class that represent a command line element (an option, or an argument). * * @category Console * @package Console_CommandLine * @author David JEAN LOUIS * @copyright 2007 David JEAN LOUIS * @license http://opensource.org/licenses/mit-license.php MIT License * @version Release: 1.2.0 * @link http://pear.php.net/package/Console_CommandLine * @since Class available since release 0.1.0 */ abstract class Console_CommandLine_Element { // Public properties {{{ /** * The element name. * * @var string $name Element name */ public $name; /** * The name of variable displayed in the usage message, if no set it * defaults to the "name" property. * * @var string $help_name Element "help" variable name */ public $help_name; /** * The element description. * * @var string $description Element description */ public $description; /** * The default value of the element if not provided on the command line. * * @var mixed $default Default value of the option. */ public $default; /** * Custom errors messages for this element * * This array is of the form: * * $messageText, * $messageName => $messageText, * ... * ); * ?> * * * If specified, these messages override the messages provided by the * default message provider. For example: * * 'The argument foo is required.', * ); * ?> * * * @var array * @see Console_CommandLine_MessageProvider_Default */ public $messages = array(); // }}} // __construct() {{{ /** * Constructor. * * @param string $name The name of the element * @param array $params An optional array of parameters * * @return void */ public function __construct($name = null, $params = array()) { $this->name = $name; foreach ($params as $attr => $value) { if (property_exists($this, $attr)) { $this->$attr = $value; } } } // }}} // toString() {{{ /** * Returns the string representation of the element. * * @return string The string representation of the element * @todo use __toString() instead */ public function toString() { return $this->help_name; } // }}} // validate() {{{ /** * Validates the element instance and set it's default values. * * @return void * @throws Console_CommandLine_Exception */ public function validate() { // if no help_name passed, default to name if ($this->help_name == null) { $this->help_name = $this->name; } } // }}} }