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);
    }
}

  

原文地址:https://www.cnblogs.com/68xi/p/11221375.html

时间: 2024-08-30 04:23:11

Thinkphp3.2下导入所需的类库 同java的Import 本函数有缓存功能的相关文章

thinkphp3.2.2 变量名称,引入类库和实例化

一些常量,例如模块名.控制器名.操作名等等,请查看 手册  附录-常量参考 需要引入的类库位置在:ThinkPHP\Library\Org\Util\的位置,该类库首先需要声明命名空间 namespace Org\Util; 然后在控制器的操作中引入使用的时候第一步是实例化,不再需要import导入 比如是导入的类为Page.class.php,在操作中的代码为: $p = new \Org\Util\Page($count, $listRows); 括号里面的是两个参数 生成链接的快捷方法 :

IE8下导入EXCEL数据传到客户端以附件下载

IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); message.Content = new StringContent("数据", Encoding.UTF8, "text/html"); return message;

windows命令行下导入excel数据到SQLite数据库

1.转换文件格式,防止中文乱码:将excel保存成"CSV(逗号分隔)(*.csv)"格式,关闭文件,用记事本打开刚才保存的.csv文件,然后另存为UTF-8格式文本.需要注意的是,经过这样的转换,数字也全变成文本了. 2.通过adb shell(adb.exe存放在android开发软件安装文件夹中,如 F:\Develope\Tools\adt-bundle-windows-x86\sdk\platform-tools\)更改sqlite数据库的使用权限.运行adb之前要先打开AV

解决linux下导入数据库乱码问题

引言:在windows下的mysql数据库导出SQL文件,在Linux下导入后显示为乱码. 1.启动Mysql服务及创建数据库(下面uushop为我将创建的数据库名) ? 1 2 service mysqld start create database uushop; 2.导入Mysql文件方式 --未登录 mysql -u root -p uushop < /software/uushop.sql --已登录 use uushop; source /software/uushop.sql 3.

linux下导入导出数据库

导出数据库: mysqldump -u root -p dbname > /usr/local/dbname.sql #全部导出mysqldump -u root -p -d --add-drop-table dbname > /usr/local/dbname.sql #只导出表结构 当然需要压缩一下: zip -r /usr/local/dbname.zip /usr/local/dbname.sql 导入时需要 mysql -u root -p dbname < dbname.sq

linux下导入、导出mysql数据库命令 下载文件到本地

一.下载到本地 yum install lrzsz sz filename  下载 rz filename  上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 2.只导出表

VirtualBox下导入CentOS后,无法上网

????从VirtualBox的"管理"菜单下,选择"导出虚拟电脑",存一个备份.用时,再从"管理"菜单下,选择"导入虚拟电脑",但无法上网.解决办法: 一.修改配置文件 vi /etc/udev/rules.d/70-persistent-net.rules 注释掉eth0的相关设置 更改eth1为eth0 ? 二.更改网卡MAC地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0

在Eclipse下导入vlc-android并编译

在Ubuntu14.04下载好了VLC的源码后,VLC的Eclipse工程存放在"vlc-android"目录 [email protected]:/home/dzt/android_vlc/android# ls android-headers-gingerbread compile.sh find_modules.sh NEWS android-headers-hc configure.sh gcc rename_package.sh android-headers-ics COP

thinkphp3.2开发排错一例——当__APP__的值变化后,需要删除缓存~runtime.php文件

经过是这样的: 在根目录下建立了一个文件夹weixin,之前通过www.domain.com/weixin访问,后来想改成二级域名weixin.domain.com访问,但通过U方法生成的路径中仍含有weixin/,通过输出__APP__的值发现也带weixin/,删除缓存~runtime.php文件后解决问题 thinkphp3.2开发排错一例--当__APP__的值变化后,需要删除缓存~runtime.php文件,布布扣,bubuko.com