## 内置函数
`FastAdmin`插件系统中有内置多个函数用于我们进行调用,除了以下插件系统中的内置函数可以调用外,我们还可以直接调用FastAdmin框架中的内置函数,如`cdnurl`图片补全、`addtion`附加关联数据、`check_cors_request`跨域检测、`xss_clean`清理XSS 等函数,请参考文档:https://doc.fastadmin.net/doc/1263.html
## addon\_url
用于生成插件控制器方法的url
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $url | 插件标识/控制器名/方法名 |
| $vars | 变量参数,默认为空 |
| $suffix | 是否生成后缀,默认为true |
| $domain | 域名,默认不包含域名 |
### 调用方法
~~~bash
$url1 = addon_url('mydemo/index/index');
$url2 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123]);
$url3 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123], true, true);
~~~
我们可以看到第二个参数数组中有`:name`和`id`两种写法,`:name`在`ThinkPHP5`中没有这种写法的,这是FastAdmin插件系统中特有的写法。这里`:name`是为了配合`插件管理`\->`配置`\->`伪静态`使用的,具体使用方法可以参考`伪静态`章节。
### 返回值
以下返回值都是在未使用伪静态时返回的URL,如果使用了伪静态则返回值会不同。
~~~bash
/addons/mydemo/index/index
/addons/mydemo/index/index.html?id=123&name=myname
http://www.fa.com/addons/mydemo/index/index.html?id=123&name=myname
~~~
## get\_addon\_list
获得插件列表,此函数将返回本地已安装的插件列表
### 调用方法
~~~bash
$addonList = get_addon_list();
~~~
### 返回值
二维数组
## get\_addon\_info
获得插件的基础信息
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
### 调用方法
~~~bash
$addonInfo = get_addon_info('mydemo');
~~~
### 返回值
一维数组,示例
~~~javascript
Array
(
[name] => mydemo
[title] => 插件名称mydemo
[intro] => FastAdmin插件
[author] => yourname
[website] => https://www.fastadmin.net
[version] => 1.0.0
[state] => 1
[url] => /addons/mydemo.html
)
~~~
## get\_addon\_config
获取插件类的配置值,以键值数组的形式返回
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
### 调用方法
~~~bash
$addonConfig = get_addon_config('mydemo');
~~~
### 返回值
~~~scss
Array
(
[usernmae] => test
[password] => 123456
)
~~~
## get\_addon\_fullconfig
获取插件类的配置数组,以二级数组的形式返回
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
### 调用方法
~~~bash
$addonConfigList = get_addon_fullconfig('mydemo');
~~~
### 返回值
~~~sql
Array
(
[0] => Array
(
[name] => usernmae
[title] => 用户名
[type] => string
[content] => Array
(
)
[value] => test
[rule] => required
[msg] =>
[tip] =>
[ok] =>
[extend] =>
)
[1] => Array
(
[name] => password
[title] => 密码
[type] => string
[content] => Array
(
)
[value] => 123456
[rule] => required
[msg] =>
[tip] =>
[ok] =>
[extend] =>
)
)
~~~
## get\_addon\_instance
获取插件的单例
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
### 调用方法
~~~bash
$addonInstance = get_addon_instance('mydemo');
~~~
### 返回值
~~~less
addons\mydemo\Mydemo Object
~~~
## set\_addon\_info
设置插件基础配置信息,将实时更新插件目录下的`info.ini`文件
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
| $array | 配置数据 |
### 功能描述
### 调用方法
~~~sql
$result = set_addon_info('mydemo', ['title'=>'标题一']);
~~~
### 返回值
bool
## set\_addon\_config
设置插件配置信息,一般临时写入配置信息,第三个参数用于实时写入配置信息
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
| $config | 配置数据 |
| $writefile | 是否写入配置文件,默认为true |
### 调用方法
~~~sql
$result = set_addon_config('mydemo', ['username'=>'testname']);
$result = set_addon_config('mydemo', ['username'=>'testname'], true);
~~~
### 返回值
bool
## set\_addon\_fullconfig
实时写入插件配置文件
### 参数列表
| 名称 | 描述 |
| --- | --- |
| $name | 插件标识 |
| $config | 配置数据,二维数组信息,一般框架内部使用,不建议调用 |
### 调用方法
~~~sql
$result = set_addon_fullconfig('mydemo', [['username'=>'testname', 'type'=>'string', ...]]);
~~~
### 返回值
bool