/** * 自动载入 * * @param string $class 载入类名 */ function __autoload($class) { // 搜索应用库文件目录和系统库文件目录 if (!lb_require_lib(lb_convert_class_to_quote($class))) { lb_require_file(_LIB_PATH, lb_convert_class_to_quote(str_replace('/^Lb_/', '', $class))); } }
/** * 框架文件载入 * * @param string $class 加载类名 */ function lb_load_from_system($class) { // 消除框架命名空间前缀 $class = preg_replace("/^Lazybug\\\\Framework\\\\/", '', $class); // 搜索系统库文件目录 lb_require_file(_LIB_PATH, lb_convert_class_to_quote(str_replace('/^Lb_/', '', $class))); }
/** * 加载数据库 * * @param string $name 配置索引 * @return object $database 数据库连接 */ function lb_load_database($name) { // 主从数据库配置 $db_conf = lb_read_database($name); preg_match('/\\.slave$/', $name) && ($db_conf = $db_conf[rand(0, count($db_conf) - 1)]); // 连接数据库并返回 $db_index = explode('.', $name); if (lb_require_file(_LIB_PATH, 'Driver.Db.' . $db_index[0])) { $db_class = 'Driver_Db_' . ucfirst(strtolower($db_index[0])); $db = new $db_class(); return $db->connect($db_conf['host'], $db_conf['dbname'], $db_conf['user'], $db_conf['password'], $db_conf['charset']); } }
/** * 读取指定配置 * * @param string $group 配置组 * @param string $key 配置索引 * @return type $config 配置值 */ function lb_read_config($group, $key = '') { // 应用配置覆盖系统配置 $config = array_merge((array) lb_require_file(_CONF_PATH, $group, 1), (array) lb_require_file(CONF_PATH, $group, 1)); // 空索引则返回整个配置组 if ($key === '') { return $config; } // 配置索引以点号分隔 for ($i = 0, $keys = explode('.', $key); $i < count($keys); $i++) { $config = $config[$keys[$i]]; } return $config; }