/** * クラス名とファイルパスを取得、読み込み、UniFactoryへの委譲 * * @override * @access public * @param Array UCLをパースした配列 classNameのみ必須 * @param Array [Optional] 初期化に用いる引数 * @return Object or null */ function &_initComponent($parts, $args = array()) { $obj = null; //className is required if ($parts['className'] == "") { return $obj; } $className = $parts['className']; $classPath = str_replace('_', '/', $className) . ".php"; //default type is constructor $initType = $parts['initType'] != "" ? $parts['initType'] : "constructor"; //because file_exists does not search include_path. if (!@(include_once $classPath)) { return $obj; } $obj =& UniFactory::createInstance($className, $initType, $args, $parts['initOption']); /* 最低限のエラーチェックだが、本来はもっとしっかりしたエラー処理 (厳密なチェックという話ではなく、ユーザへの伝達機構)が必要 */ if (is_a($obj, 'PEAR_Error')) { //TODO : error raising ... return $obj; } return $obj; }
/** * クラス名とファイルパスを取得、読み込み、UniFactoryへの委譲 * * @override * @access public * @param Array URIをパースした配列 classNameとclassPathが必須 * @param Array [Optional] 初期化に用いる引数 * @return Object or null */ function &_initComponent($parts, $args = array()) { $component = null; //className and classPath are required if ($parts['className'] == "" || $parts['classPath'] == "") { return $component; } $className = $parts['className']; $classPath = $this->_makeClassPath($parts, $className); //default init type is setter $initType = $parts['initType'] != "" ? $parts['initType'] : "setter"; if (!@(include_once $classPath)) { return $component; } $component =& UniFactory::createInstance($className, $initType, $args, $parts['initOption']); return $component; }
/** * クラス名とファイルパスを取得、読み込み、UniFactoryへの委譲 * * @override * @access public * @param Array URIをパースした配列 classNameのみ必須 * @param Array [Optional] 初期化に用いる引数 * @return Object or null */ function &_initComponent($parts, $args = array()) { $component = null; //className is required if ($parts['className'] == "") { return $component; } //default init type is setter. $initType = $parts['initType'] != "" ? $parts['initType'] : "setter"; $dotSeparated = $parts['className']; $className = $this->_makeClassName($dotSeparated); if (!$this->_includeClass($dotSeparated, $className)) { return $component; } $component =& UniFactory::createInstance($className, $initType, $args, $parts['initOption']); return $component; }