Skip to content

开发规范

单元测试

单元测试采用 phpunit.phar 和项目独立的方式进行安装, 这样需要在项目中进行配置

快捷生成

使用如下命令便捷创建单元测试文件

$ php artisan poppy:test  {slug} {name}

测试文件加载

对于开发中的包, 单元测试是无法识别其路径的, 所以需要将包加入到 composer.jsonautoload 中, 这里遵循 psr-4 加载规范

json
{
  "autoload": {
    "classmap": [],
    "psr-4": {
      "User\\": "modules/user/src/",
      "Site\\": "modules/site/src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "User\\Tests\\": "modules/user/tests/",
      "Site\\Tests\\": "modules/site/tests/"
    }
  }
}

要求

  • 编写配置文件, 保证配置正确
  • 编写模型文件, 保证模型函数正确
  • 编写功能文件, 保证 Notification
  • 编写方便的 Action 测试, 便于功能点测试

接口

接口文档

接口文档写法遵循 apidoc

接口要求

  • 保证接口请求不返回 null 值

IDE

代码风格统一

  • 下载代码风格文件Code_Style-Mark
  • 打开 Preferences | Editor | Code Style , 在右侧 设置 中选择 Import Scheme , 导入刚才下载的 xml 文件
  • Scheme 选择框中选择刚才导入的风格进行使用

代码格式化

保证代码格式正确, 对文件夹进行代码格式化 ctrl + alt + l , 在 src 目录下运行 代码中不得存在编辑器提示的错误, 需要开启 Php Inspection

优化导入

在 PHPstorm 中需要 alt+enter 进行 Import Class 或者 Simplify FQN , 这样便可以是代码看起来更简洁

php
// bad
/**
 * @property \Carbon\Carbon    $created_at
 */

// good
/**
 * @property Carbon    $created_at
 */

目录设定

忽略掉不需要的加载目录

生成的文件, 不需要进行索引

# 前端文件
public/assets

# 调试
storage/clockwork

# 生成的文档
storage/sami
public/docs

将 public 目录设置为资源根目录

因为 public 目录是对外输出目录, 所有的资源均以这个作为资源的识别

如何验证 trans 文档是否正确

  • 使用 phpstorm 搜索出所有所有 trans(' 匹配的文档
  • 使用 open in window 打开
  • 邮件根菜单选择 Export to text file 选择位置进行保存
  • 运行命令 php artisan py-core:inspect trans --export=/Users/duoli/Desktop/report.txt

验证

开发进行提交前按照这个清单进行下检测

PHP-CS-Fixer

PHP-CS-Fixer is a tool to automatically fix PHP Coding Standards issues, We use it for Code Specification.

注释完善并且通过

注释使用 poppy/core 模块来检测[开发必备]

$ php artisan py-core:inspect class

不要出现 package 标签

@package

代码协同

GIT

代码使用 Git 进行代码协同

Git Flow

git-flow 并不是要替代 Git,它仅仅是非常聪明有效地把标准的 Git 命令用脚本组合了起来。 Release 管理是版本控制处理中的另外一个非常重要的话题, 详细见下边的文档. Git Flow 的详细说明文档

使用 husky 让代码提交优雅规范