类库扩展
2018-10-19 17:24 更新
添加类库
框架本身是不带类库的,如果需要添加第三方类库,可以将类库放置到application/extend
(可自定义)目录下。
在Idea框架中存在3种类库加载方法
- 辅助函数
import()
加载,针对未定义命名空间的类- 自动加载方式 ,类需要按规则定义命名空间
- 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
更多建议: