/** * 获取运行的service * @return object */ private function get_service_obj() { $InitPHP_conf = InitPHP::getConfig(); $test_file_name = $this->classname . $InitPHP_conf['service']['service_postfix']; if (InitPHP::importNoApp("{$test_file_name}" . ".php", array($InitPHP_conf['service']['path']))) { return InitPHP::loadclass($test_file_name); } return false; }
/** * 获取Dao-实例并且单例模式获取Dao * 1.单例模式获取 * 2.可以选定Dao路径path * 3. dao需要在配置文件中配置参数,$path对应dao目录中的子目录 * 全局使用方法:InitPHP::getDao($daoname, $path = '') * @param string $daoname 服务名称 * @param string $path 模块名称 * @return object */ public static function getDao($daoname, $path = '') { $InitPHP_conf = InitPHP::getConfig(); //过滤/符号,并组织类名 $path = trim($path, '/'); $other_pres = array(); if (!empty($path)) { //分割路径 $other_pres = explode('/', $path); $other_pres = array_reverse($other_pres); foreach ($other_pres as &$value) { $value = ucfirst($value); } } $path = ($path == '' ? '' : $path) . '/'; $file_name = $daoname . implode('', $other_pres) . $InitPHP_conf['dao']['dao_postfix']; //文件名字 用于初始化 $class = $daoname . $InitPHP_conf['dao']['dao_postfix']; //类名 $dao_path = rtrim($InitPHP_conf['dao']['path'], '/') . '/'; $pre = $dao_path . $path; $file = $pre . $class . '.php'; //引入通用父级 if (strpos($path, 'mysql') === 0) { $dao_path = $dao_path . 'mysql/'; } elseif (strpos($path, 'mongo') === 0) { $dao_path = $dao_path . 'mongo/'; } elseif (strpos($path, 'search') === 0) { //全文检索 $dao_path = $dao_path . 'search/'; } if (file_exists($dao_path . 'abstract.php')) { require_once $dao_path . 'abstract.php'; } if (!InitPHP::importNoApp($file)) { return false; } $obj = InitPHP::loadclass($file_name); return $obj; }