# 添加類庫
框架本身是不帶類庫的,如果需要添加第三方類庫,可以將類庫放置到`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加載在下一章節介紹