|
|
例如:- $site = pc_base::load_app_class('sites');
复制代码 代表加载当前模块下的classes里面的sites.class.php 且需要初始化( new后赋值给变量) 共三个参数分别代表类名 模块名 是否初始化
- pc_base::load_app_class('admin','admin',0);
复制代码 代表加载:phpcms下modules下的admin模块下的classes里面的的 admin.class.php
源码:
- public static function load_app_class($classname, $m = '', $initialize = 1) {
- $m = empty($m) && defined('ROUTE_M') ? ROUTE_M : $m;
- if (empty($m)) return false;
- return self::_load_class($classname, 'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.'classes', $initialize);
- }
复制代码 关联源码
- /**
- * 加载类文件函数
- * @param string $classname 类名
- * @param string $path 扩展地址
- * @param intger $initialize 是否初始化
- */
- private static function _load_class($classname, $path = '', $initialize = 1) {
- static $classes = array();
- if (empty($path)) $path = 'libs'.DIRECTORY_SEPARATOR.'classes';
- $key = md5($path.$classname);
- if (isset($classes[$key])) {
- if (!empty($classes[$key])) {
- return $classes[$key];
- } else {
- return true;
- }
- }
- if (file_exists(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {
- include PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php';
- $name = $classname;
- if ($my_path = self::my_path(PC_PATH.$path.DIRECTORY_SEPARATOR.$classname.'.class.php')) {
- include $my_path;
- $name = 'MY_'.$classname;
- }
- if ($initialize) {
- $classes[$key] = new $name;
- } else {
- $classes[$key] = true;
- }
- return $classes[$key];
- } else {
- return false;
- }
- }
复制代码
|
|