# php 编译规范 - 编码无特殊说明,参考 PSR 规范 https://www.kancloud.cn/thinkphp/php-fig-psr/3139 - thinkPHP 编码注意事项 - 事务要在控制器中实现,不允许在模型中实现 - 在 THINKPHP6 中,跨域要基于中间件实现,不要在 index.php 文件中实现 参考文档:thinkphp6 解决跨域.note 链接:http://note.youdao.com/noteshare?id=88846717ae6024219e544832557d7583&sub=93F626A294EE49F889F4F1B8B71E2CC3 错误示例 /public/index.php ``` define('WEB_DIR',dirname(str_replace($_SERVER['DOCUMENT_ROOT'],"",$\_SERVER['SCRIPT_FILENAME'])));//定义根目录虚拟路径 header("Access-Control-Allow-Credentials:true"); header("Access-Control-Allow-Origin:*");//注意修改这里填写你的前端的域名 header("Access-Control-Max-Age:3600"); header("Access-Control-Allow-Headers:\_,Content-Type,Fetch-Mode,accept,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,SessionToken"); header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS, POIST'); // 执行 HTTP 应用并响应 $http = (new App())->http; $response = $http->run(); $response->send(); $http->end($response); ``` - 复杂的业务操作建议放在流程中,不要放在控制器中实现。例如 订单退订、订单核销等。 - 方法要写注释,说明方法功能 - 单个函数代码行数不要超过 200 行(注释不算),单个文件代码行数建议超过 2000 行(注释不算) - 后台接收前端发来的的数据,一定要用 trim 方法去掉前后空格 - 变量命名语义化,变量名作用域超过 10 行以上的,禁用 a,b,c,i,j,k 等简单且无意义的字母作为变量命名 - 与第三方系统对接的,接口交互要写日志。记录接口请求与返回的具体信息。