codecamp

类库扩展

添加类库

框架本身是不带类库的,如果需要添加第三方类库,可以将类库放置到application/extend(可自定义)目录下。

在Idea框架中存在3种类库加载方法

  1. 辅助函数import()加载,针对未定义命名空间的类
  2. 自动加载方式 ,类需要按规则定义命名空间
  3. Composer加载

1. 加载没有使用命名空间的类库(辅助函数:import()

这儿我们以验证码类为例,来进行演示。
我用来演示的验证码类是自己开发的,包含字体文件和类文件。
类文件路径:application/extend/lib/vcode/ValidateCode.php

  • 首先,我将验证码类库文件放置到/System/Libraries,具体目录结构如下:
/application [应用目录]
 ├─extend--------------------------[应用扩展目录]
 | └─lib---------------------------[框架类库]
 |   └─vcode-----------------------[分页分页类库]
 |     ├─ValidateCode.php ---------[验证码类]
 |     └─fonts---------------------[字体文件目录]
  • 文件放置好以后以后,我们进行第二步操作,使用框架内置辅助函数import();在控制器User.php`中加载引入刚刚添加的类文件即可:
  • 公共函数:import();供两个两个参数介绍如下
函数名类路径(包含类名。相对于extend目录)
import传入路径名

下面是验证码使用demo:

<?php
namespace app\home\controller;

class Index  extends Common{
    /**
     * 验证码图片
     * @return resource 验证码图片
     */
    public function vCode(){
        session_start();
        import('lib/vcode/ValidateCode');
        $vCode=new \ValidateCode();
        $vCode->getImage();
        //设置session
        $_SESSION['vcode']=$vCode->getCode();
    }
}

现在我们访问URL(这儿演示的是伪静态+PATHINFO模式)路径:http://ServerNameHome/Index/vCode即可得到我们的验证码图片输出

2. 命名空间加载方式

类文件路径:application/extend/lib/vcode/ValidateCode.php如果类ValidateCode定义了命名空间

<?php
namespace app\extend\lib\vcode;

class ValidateCode
{
}

那么就在这样来使用验证码类

<?php
namespace app\home\controller;

class Index  extends Common{
    /**
     * 验证码图片
     * @return resource 验证码图片
     */
    public function vCode(){
        session_start();
        $vCode=new \app\extend\lib\vcode\ValidateCode();
        $vCode->getImage();
        //设置session
        $_SESSION['vcode']=$vCode->getCode();
    }
}

如过在配置文件中还自定义了类库命名空间映射,比如这样:

'namespace_map_list' => [
        'system' => FRAMEWORK_PATH . 'core',
        'app'    => ROOT_PATH . 'application',
        'lib'    => ROOT_PATH.'application/extend/lib',        //自定义的目录映射
    ],

那么类ValidateCode的命名空间将这么定义

<?php
namespace lib\vcode;

class ValidateCode
{
}

最后使用验证码类

<?php
namespace app\home\controller;

class Index  extends Common{
    /**
     * 验证码图片
     * @return resource 验证码图片
     */
    public function vCode(){
        session_start();
        $vCode=new \lib\vcode\ValidateCode();        //注意这儿
        $vCode->getImage();
        //设置session
        $_SESSION['vcode']=$vCode->getCode();
    }
}

3.Composer加载在下一章节介绍

404
Composer
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

控制器

附录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }