类库扩展

最后更新于:2022-04-01 11:14:14

# 添加类库 框架本身是不带类库的,如果需要添加第三方类库,可以将类库放置到`application/extend`(可自定义)目录下。 >[info] 在Idea框架中存在3种类库加载方法 >>1. 辅助函数`import()`加载,针对未定义命名空间的类 >>2. 自动加载方式 ,类需要按规则定义命名空间 >>3. Composer加载 ### 1. 加载没有使用命名空间的类库(辅助函数:`import()`) 这儿我们以验证码类为例,来进行演示。 我用来演示的验证码类是自己开发的,包含字体文件和类文件。 类文件路径:`application/extend/lib/vcode/ValidateCode.php` * 首先,我将验证码类库文件放置到`/System/Libraries`,具体目录结构如下: ```tree /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加载在下一章节介绍
';