Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** the interface for all shell extensions** Extension can hook into the execution of the shell** examples:* - execution time for parsing and execute* - colours for the output* - inline help***/interface PHP_Shell_Extension {public function register();}/*** storage class for Shell Extensions***/class PHP_Shell_Extensions {/*** @var PHP_Shell_Extensions*/static protected $instance;/*** storage for the extension** @var array*/protected $exts = array();/*** the extension object gives access to the register objects* through the a simple $exts->name->...** @param string registered name of the extension* @return PHP_Shell_Extension object handle*/public function __get($key) {if (!isset($this->exts[$key])) {throw new Exception("Extension $s is not known.");}return $this->exts[$key];}/*** register set of extensions** @param array set of (name, class-name) pairs*/public function registerExtensions($exts) {foreach ($exts as $k => $v) {$this->registerExtension($k, $v);}}/*** register a single extension** @param string name of the registered extension* @param PHP_Shell_Extension the extension object*/public function registerExtension($k, PHP_Shell_Extension $obj) {$obj->register();$this->exts[$k] = $obj;}/*** @return object a singleton of the class*/static function getInstance() {if (is_null(self::$instance)) {$class = __CLASS__;self::$instance = new $class();}return self::$instance;}}