26
2019.2
类库
作者: POPASP
POPASP的类库包括基类库和应用类库,系统的类库命名规则如下:
| 类型 | 规则 | 示例 |
| --------- | ----- | -----|
| 控制器类 | 模块名 | 例如 User、Info |
| 模型类 | 模型名 | 例如 User、Info |
| `K_`模型类(3.1添加) | 模型名 | 例如 Public、Tool |
| 框架类 | 以`popasp_`为前缀 | 例如 popasp_access,文件名小写,类名全部大写,POPASP_ACCESS |
除了框架类外,类名和文件名一致, 详细命名规范可以参考1.7 命名规范。
### 基类库
基类库是指符合POPASP类库规范的系统类库,包括POPASP的核心基类库和扩展基类库。核心基类库目录位于系统目录,核心基类库也就是POPASP类库,扩展基类库1.0版本暂时没有。
### 类库导入
POPASP类库的导入不同于函数的导入,包含下面两种方式:
#### 一、基类导入
```brush:vb
dim db,db2
set db = POP_MVC.import("POPASP_ACCESS") '得到实例化的类对象
set db2 = P_("ACCESS") '用简写函数 P_
'....
var_export db.Version
var_export db2.Version
set db = nothing
set db2 = nothing
```
#### 二、模型类导入
模型类导入有两种方法,一是使用`M_`函数,用于数据表数据添加或修改时的自动完成与自动验证,一是使用`B_`函数,用于数据查询、删除或个别字段的修改
```brush:vb
dim mUser,mContact
set mContact = M_("contact") '用简写函数 M_
'下面使用POP_MVC.Model与M_函数等价
'set mUser = POP_MVC.Model("contact") '得到实例化的类对象
set mUser = B_("user")
'....
var_export mUser.TableName 'user
var_export mContact.db.getPK() '使用M_函数得到的实例,需要使用db属性
```
### 三、 `K_`定义的模型
有些函数集合,我们并不想在入口文件中引入,而是在程序中动态调用,此时的模型类相当于一个函数集合,其位置应该在App/Model/目录下,比如
```brush:vb
<%
Class Public
sub print(arg)
var_export arg
end sub
End Class
%>
```
使用:
```brush:vb
K_("Public").print(POP_MVC) '参数POP_MVC可以改成自己的需要的
```
#### 四、执行控制器的方法
控制器类不同于基类与模型类,它无须导入,但是很有必要执行控制器的方法
```brush:vb
Call A_("index") '建议采用简写
Call POP_MVC.Action("index") '完整的写法
```