Yangzie 按模块(module)来组织代码,所有的module放在app/modules目录下面,比如用户模块,订单模块,具体由开发者根据项目情况定义。
我们以一个test模块为例,展示如何生成模块代码。
每个模块的目录结构如下:
目录 | 说明 |
app/modules/test | 测试模块 |
⎿ __config__.php | 模块的配置文件 |
⎿ controllers | 控制器目录,放置模块下的控制器类 |
⎿ hooks | 模块的hook文件 |
⎿ models | 模块下的模型文件 |
⎿ public_html | 该模块的静态资源文件 |
⎿ views | 模块下的视图文件 |
模块的__config__.php和app的__config__.php是一样的,因为app本身就是一个module。
module的目录结构及其里面的文件,如果靠手工创建则是很繁琐的,Yangzie提供了scripts脚本,用于生成这些目录及文件,这些脚本文件位于scripts中,在命令行中运行这些脚本:
- 命令行进入到项目根目录(也就是和scripts同级目录)
- 运行命令 php scripts/yze.php ( 请自行确定命令行中能访问你环境中的php,如果是windows环境,需要设置把php的目录加到path环境变量中)
- 一切正常的话你将看到如下的界面:
目前scripts可以做代码生成,模型生成(db to code),模块打包成phar及运行单元测试,要做什么选择相应的序号即可,这里只说明生成模块、model和控制器,其他的在对应的章节会具体介绍。
1.生成模块
选择1生成模块结构,会创建对应的模块目录结构及controller和对应的view,第一步输入模块名,第二步输入控制器的名字,第三步输入action,第四步路由:
生成的目录结构如下,会生成controller及对应的action视图文件:
注意:
- 如果一个模块或者controller已经存在了,则不会重复创建已存在的目录和文件
- 路由支持正则,如果不输入,则按默认的module/controller/action的方式解析,详情见模块配置路由映射
- 模块名、控制器名、action名要准守变量命名的规则
- action名默认index,如果直接回车则用默认值;action只支持get方法生成,post方法自行添加,见post请求
生成代码后,你便可以通过浏览器访问你生成的controller的访问地址,比如实例中的地址:
controller及view的文件生成只是生成一个代码结构,里面的逻辑需要开发者自行编写,具体见Controller,视图
2.生成Model
model封装了数据表的字段定义、字段规则约束及与其他表之间的关联,通过脚步可以字段生成这些关联的代码。yangzie采取的是db to code的方式:需要先设计并创建好数据库表,然后在通过脚本生成代码,生成model的步骤是:选择数据库,选择表,选择放置模块
注意:
生成的代码有两个文件组成
- _model.class.php 是自动生成的代码,该文件所有内容都是自动生成,不要进行修改
- _model_method.trait.php 该文件会自动生成,用于开发者在里面编写模型的业务方法
关于model的详细信息,见文档model。
至此,你已经生成了一个基本的模块及代码,接下来了解下yangzie是如何处理请求及数据库操作的吧