zoukankan      html  css  js  c++  java
  • Thinkphp3.2下导入所需的类库 同java的Import 本函数有缓存功能

        

    * 导入所需的类库 同java的Import 本函数有缓存功能

    * @param string $class 类库命名空间字符串
    * @param string $baseUrl 起始路径
    * @param string $ext 导入的文件扩展名
    * @return boolean

    测试案例站点:http://www.yixingmuban.com/ 

       

    function import($class, $baseUrl = '', $ext='.class.php') {
        static $_file = array();
        $class = str_replace(array('.', '#'), array('/', '.'), $class);
        if ('' === $baseUrl && false === strpos($class, '/')) {
            // 检查别名导入
            return alias_import($class);
        }
        if (isset($_file[$class . $baseUrl]))
            return true;
        else
            $_file[$class . $baseUrl] = true;
        $class_strut     = explode('/', $class);
        if (empty($baseUrl)) {
            $libPath    =   defined('BASE_LIB_PATH')?BASE_LIB_PATH:LIB_PATH;
            if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) {
                //加载当前项目应用类库
                $baseUrl = dirname($libPath);
                $class   = substr_replace($class, basename($libPath).'/', 0, strlen($class_strut[0]) + 1);
            }elseif ('think' == strtolower($class_strut[0])){ // think 官方基类库
                $baseUrl = CORE_PATH;
                $class   = substr($class,6);
            }elseif (in_array(strtolower($class_strut[0]), array('org', 'com'))) {
                // org 第三方公共类库 com 企业公共类库
                $baseUrl = LIBRARY_PATH;
            }else { // 加载其他项目应用类库
                $class   = substr_replace($class, '', 0, strlen($class_strut[0]) + 1);
                $baseUrl = APP_PATH . '../' . $class_strut[0] . '/'.basename($libPath).'/';
            }
        }
        if (substr($baseUrl, -1) != '/')
            $baseUrl    .= '/';
        $classfile       = $baseUrl . $class . $ext;
        if (!class_exists(basename($class),false)) {
            // 如果类不存在 则导入类库文件
            return require_cache($classfile);
        }
    }
    

      

  • 相关阅读:
    C#.NET中的ToString()数字格式化
    Entity Framework实现属性映射约定
    CentOS6.3安装MySQL5.5
    Xshell传输文件
    centos直接yum安装nginx
    winform 开发中 把耗时操作 封装起来 异步执行(.net 4.0)
    c# action<> func<> 这2个委托怎么用和理解
    git@oschina使用入门(图形界面版)
    Linux任务前后台的切换
    linux 常用命令,开发记住这些基本能够玩转linux
  • 原文地址:https://www.cnblogs.com/68xi/p/11221375.html
Copyright © 2011-2022 走看看