生成代码

目录
[隐藏]

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中,在命令行中运行这些脚本:

  1. 命令行进入到项目根目录(也就是和scripts同级目录)
  2. 运行命令 php scripts/yze.php ( 请自行确定命令行中能访问你环境中的php,如果是windows环境,需要设置把php的目录加到path环境变量中)
  3. 一切正常的话你将看到如下的界面:
    yangzie scripts

目前scripts可以做代码生成,模型生成(db to code),模块打包成phar及运行单元测试,要做什么选择相应的序号即可,这里只说明生成模块、model和控制器,其他的在对应的章节会具体介绍。

1.生成模块

选择1生成模块结构,会创建对应的模块目录结构及controller和对应的view,第一步输入模块名,第二步输入控制器的名字,第三步输入action,第四步路由:

生成的目录结构如下,会生成controller及对应的action视图文件:

注意:

  1. 如果一个模块或者controller已经存在了,则不会重复创建已存在的目录和文件
  2. 路由支持正则,如果不输入,则按默认的module/controller/action的方式解析,详情见模块配置路由映射
  3. 模块名、控制器名、action名要准守变量命名的规则
  4. action名默认index,如果直接回车则用默认值;action只支持get方法生成,post方法自行添加,见post请求

生成代码后,你便可以通过浏览器访问你生成的controller的访问地址,比如实例中的地址:

controller及view的文件生成只是生成一个代码结构,里面的逻辑需要开发者自行编写,具体见Controller视图

2.生成Model

model封装了数据表的字段定义、字段规则约束及与其他表之间的关联,通过脚步可以字段生成这些关联的代码。yangzie采取的是db to code的方式:需要先设计并创建好数据库表,然后在通过脚本生成代码,生成model的步骤是:选择数据库,选择表,选择放置模块

注意:

生成的代码有两个文件组成

  1. _model.class.php 是自动生成的代码,该文件所有内容都是自动生成,不要进行修改
  2. _model_method.trait.php 该文件会自动生成,用于开发者在里面编写模型的业务方法

关于model的详细信息,见文档model

至此,你已经生成了一个基本的模块及代码,接下来了解下yangzie是如何处理请求及数据库操作的吧