命名规范
Posted dennylau
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名规范相关的知识,希望对你有一定的参考价值。
创建数据数 如果改变 通知开发人员 修改配置 有本数据库所有权限
- 数据库名称 我爱我会数据库名称
- 数据库用户名 我爱我会数据库用户名
- 数据库密码 我爱我会数据库密码
Redis 通知开发人员 添加配置 0本地 1开发 2测试 预发布线上使用线上的redis
- 127.0.0.1
- 无密码
获取代码 git 指定分支 dev 注意git权限问题
git clone git@xxxx.git
cd xxx
git checkout dev
git pull
文件夹权限 path 代码目录
cd src
chmod -R 755 public/uploads
chmod -R 755 storage
composer 安装 并执行安装命令 提示可能有需要php扩展
cd src
composer install --optimize-autoloader --no-dev
代码配置文件 复制src目录下 .env.test .env
cd src
cp .env.test .env
执行命令 数据迁移 数据初始化
cd src
php artisan migrate
php artisan db:seed
配置定时任务(安装 crontab) path 代码目录 用途:执行定时任务等 (非本地环境)
crontab -e
* * * * * php path/src/artisan schedule:run >> path/src/storage/logs/crontab.log 2>&1
:wq
service crond restart
配置邮件守护进程(安装 supervisor) path 代码目录 用途:邮件队列 配置文件: (非本地环境)
[program:queue-qly-test-email]
process_name=%(program_name)s_%(process_num)02d
command=php path/src/artisan queue:work --queue=email --sleep=3 --daemon
autostart=true
autorestart=true
numprocs=1
stdout_logfile=path/src/storage/logs/queue_email.log
stderr_logfile=NONE
user=nginx
配置守护进程 path 代码目录 用途:队列 配置文件:
[program:queue-qly-test]
process_name=%(program_name)s_%(process_num)02d
command=php path/src/artisan queue:work --sleep=3 --daemon
autostart=true
autorestart=true
numprocs=2
stdout_logfile=path/src/storage/logs/queue.log
stderr_logfile=NONE
user=nginx
配置 nginx 接口域名 path 代码目录 (php 解析)(php 解析)(php 解析) 域名解析 *.woaiwohui.com
listen 80;
server_name woaiwohui.com;
root "pathsrcpublic";
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
后台管理 admin 密码 Aa123456
woaiwohui.com/xxx/xxx 访问
PHP代码开发规范
- https://psr.phphub.org/
- https://learnku.com/docs/laravel/5.7
框架结构
- src
- app
- Common 公共的
- Http
- Admin Admin模块层
- Controllers 控制器层
- Group 控制器层分组
- Block 业务逻辑块
- Group
- Models 数据库模型层 原子操作
- Group
- Rules 数据验证层
- Group
- Services 实例化调用数据库模型层 原子操作
- Group
- Transformers 数据输出转换层(辅助输出)
- Group
- Controllers 控制器层
- Admin Admin模块层
- app
分組机制
- 一个单词不分组 多单词取第一个单词做分组名称
- 控制器在分组里面可省去第一个单词 如 user_contact 分组名称 User 控制器名称 contact 其他必须全称
- 其他结构一律按照分组模式命名
返回数据错误码
- 单个接口返回错误码 1000开始
- 小于1000作全局错误码
数据库开发设计规范
- 表名命名 不可用复数表 附加表保持主要为前缀 同类型表也可保持同前缀
- 例如 user user_relation user_contact
- 禁用使用NULL作默认值 NOT NULL DEFAULT ‘‘
- 表主键一律用 id bigint(20)
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
- 字段顺序 id 关系主键 类型 主要内容 次要内容 时间 软删除 状态
- 时间戳 demo_at _at结尾
`updated_at` bigint(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间',
- 状态status 作后缀 status本身也可做状态 1正常 -1禁用 模型中 常量声明 例如
/**
* 状态 已禁用
*/
const STATUS_DISABLED = -1;
/**
* 状态 正常
*/
const STATUS_NORMAL = 1;
/**
* 状态
*/
const STATUS = [
self::STATUS_DISABLED => '已禁用',
self::STATUS_NORMAL => '正常',
];
- 删除使用框架自带软删除 deleted_date
`deleted_date` timestamp NULL DEFAULT NULL COMMENT '删除时间',
self::where('id', $id)->delete(); //删除用户
self::where('id', $id)->withTrashed(); //显示所有数据
self::where('id', $id)->onlyTrashed(); //显示删除数所
self::where('id', $id)->restore(); //还原数据
- 类型 0=已禁用 1=正常
路由命名及POST GET
- 模块/{分组名/}控制器/方法
- URL中字母全部小写
- 为内容资源的URL,不能有参数 比如 detail?goods_id=1 改成 detail/1
- 命名 模块命名 分组命名 和分组命名机制相同
- 幕等且安全使用GET 不幕等或者参数需要有安全需要 POST
安装命令
cd src
composer install
数据迁移命令
cd src
php artisan make:migration add_users_table --table=users
php artisan make:migration change_users_table --table=users
php artisan make:migration create_users_table --create=users
php artisan migrate
php artisan migrate:rollback
php artisan migrate:reset
php artisan migrate:refresh
初始化数据
cd src
php artisan db:seed
数据迁移 删除文件出现错误 加载文件错误等
cd src
composer dump-autoload
自动加载优化
cd src
composer dump-autoload --optimize
类命名规范
勿使用下划线。
使用大驼峰写法。
方法/函数命名规范
使用小驼峰
以上是关于命名规范的主要内容,如果未能解决你的问题,请参考以下文章