注意一下几点
- 代码开发使用
git flow
,拉取代码使用git pull --rebase
命令,合并代码git rebase 需要合并的分支
,最好不要使用git merge 需要合并的分支
servcie方法
记得增加参数的类型以及返回值的类型,接收外部参数记得转换类型- 提交代码前要在根目录下执行
composer cs-fix
格式化代码,composer analyse
静态检测 - 每个对应的
外部接口
都要编写自动化测试 - 注意请求的
method
只允许使用get
跟post
, 禁止使用put
,delete
等一些Method
- 记得编写swagger接口文档,然后倒入yapi,不要直接在yapi进行修改
- 所有
队列
必须可以重复执行 - 所有缓存的
cache key
写到config/autoload/cache_keymap.php
加上注释,app/Traits/CacheKeymapTrait.php
调用
例子以及文档
git flow 文档
1.代码从
develop分支
切功能分支开发,最后变基回develop分支
,可看下git pull --rebase
命令
2.影响master分支
流程的bug
要从master分支
切hotfix分支
开发
文档地址:https://www.jianshu.com/p/41910dc6ef29
参数的类型以及返回值的类型例子
<?php
declare(strict_types=1);
/**
* class Foo
*
* @author shixuefeng <shixuefeng@shopex.cn>
*/
class Foo() {
/**
* function test
*
* @author shixuefeng <shixuefeng@shopex.cn>
* @param integer $id 传递id
* @return integer 传递id增加1
*/
public function test(int $id): int
{
return $id + 1;
}
}
格式化代码
执行命令
composer cs-fix
格式化代码
$ demo(develop*) » composer cs-fix
> php-cs-fixer fix $1
Loaded config default from "/Users/xxxx/workspace/www/salesperson/demo/.php_cs".
1) demo/App/Extend/Tests/FooTest.php
Fixed all files in 5.551 seconds, 20.000 MB memory used
格式化代码的风格在项目根目录.php_cs 中定义,目前按照以下方式来格式化代码
<?php
$header = <<<'EOF'
This file is part of Canren .
@link https://canren.github.io/
@document https://canren.github.io/2021/02/20/02.html
@contact sxffind@126.com
EOF;
return PhpCsFixer\Config::create()
->setRiskyAllowed(true)
->setRules([
'@PSR2' => true,
'@Symfony' => true,
'@DoctrineAnnotation' => true,
'@PhpCsFixer' => true,
'header_comment' => [
'commentType' => 'PHPDoc',
'header' => $header,
'separate' => 'none',
'location' => 'after_declare_strict',
],
'array_syntax' => [
'syntax' => 'short'
],
'list_syntax' => [
'syntax' => 'short'
],
'concat_space' => [
'spacing' => 'one'
],
'blank_line_before_statement' => [
'statements' => [
'declare',
],
],
'general_phpdoc_annotation_remove' => [
'annotations' => [
'author'
],
],
'ordered_imports' => [
'imports_order' => [
'class', 'function', 'const',
],
'sort_algorithm' => 'alpha',
],
'single_line_comment_style' => [
'comment_types' => [
],
],
'yoda_style' => [
'always_move_variable' => false,
'equal' => false,
'identical' => false,
],
'phpdoc_align' => [
'align' => 'left',
],
'multiline_whitespace_before_semicolons' => [
'strategy' => 'no_multi_line',
],
'class_attributes_separation' => true,
'combine_consecutive_unsets' => true,
'declare_strict_types' => true,
'linebreak_after_opening_tag' => true,
'lowercase_static_reference' => true,
'no_useless_else' => true,
'no_unused_imports' => true,
'not_operator_with_successor_space' => true,
'not_operator_with_space' => false,
'ordered_class_elements' => true,
'php_unit_strict' => false,
'phpdoc_separation' => false,
'single_quote' => true,
'standardize_not_equals' => true,
'multiline_comment_opening_closing' => true,
])
->setFinder(
PhpCsFixer\Finder::create()
->exclude('public')
->exclude('runtime')
->exclude('vendor')
->in(__DIR__)
)
->setUsingCache(false);
静态检测
执行脚本 composer analyse,对项目进行静态检测,便可以找到出现问题的代码段。
$ salesperson-service(develop*) » composer analyse
> phpstan analyse --memory-limit 300M -l 0 -c phpstan.neon ./app ./src ./config
181/181 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
[OK] No errors
本文由 feng 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2021-02-20 00:00:00