|
|
加载系统类
例如:
- $tree = pc_base::load_sys_class('tree');
复制代码 表示加载phpcms目录下libs/classes 下的tree.class.php
源码
- /**
- * 加载系统类方法
- * @param string $classname 类名
- * @param string $path 扩展地址
- * @param intger $initialize 是否初始化
- */
- public static function load_sys_class($classname, $path = '', $initialize = 1) {
- return self::_load_class($classname, $path, $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;
- }
- }
-
复制代码- /**
- * 是否有自己的扩展文件
- * @param string $filepath 路径
- */
- public static function my_path($filepath) {
- $path = pathinfo($filepath);
- if (file_exists($path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'])) {
- return $path['dirname'].DIRECTORY_SEPARATOR.'MY_'.$path['basename'];
- } else {
- return false;
- }
- }
复制代码
|
|