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; } }