ThinkPHP8开发规范完整版.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

ThinkPHP8

开发规范

PHP版本选择

如果是新的项目,目前应该尽量选择PHP8.2+作为你的PHP版本,可以拥有更好的性能,ThinkPHP8.0版本的最低版本要求是PHP8.0。

有些PHP扩展可能不支持PHP的高版本,这个时候你要做出选择,使用低版本还是寻求更好的扩展解决方案。

基本命名规范

ThinkPHP遵循PSR-2命名规范以及PSR-4自动加载规范,并注意如下规范:

如果你没有遵循某些规范,可能会导致部分功能的异常。

类和文件命名

类(包括接口、Trait)文件名和类名保持一致,并且使用首字母大写的驼峰命名;

函数文件、配置文件、路由定义文件等文件名使用小写规范;

无论类还是普通文件都使用.php后缀;

目录名统一使用小写规范,并且使用单数规范;

模板文件使用小写规范;

配置和变量命名

配置参数名统一使用小写规范;

常量定义统一使用大写规范;

环境变量定义统一使用大写规范;

\hThinkPHP知识库函数的命名使用小写字母和下划线(小写字母开头)的方式,例如get_client_ip;

方法的命名使用驼峰法(首字母小写),例如getUserName;

属性的命名使用驼峰法(首字母小写),例如tableName、instance;

特例:以双下划线__打头的函数或方法作为魔术方法,例如__call和__callStatic;

使?统?的IDE以及代码规范配置或者插件

项目团队应当尽量使用统一的IDE作为开发工具,并规范一致的代码规范配置项,如果使用的第三方代码规范及自动完成插件。如果团队成员较多而无法完全统一,最低限度,项目代码风格必须遵循PSR-1和PSR-2规范。

助?函数

助手函数的初衷是为了简化代码和更方便记忆,但如果不是很清楚助手函数的内部实现原理,很容易导致滥用,由于现代的IDE提示和自动完成功能之强大,助手函数的作用非常有限,而且只会用助手函数对于框架的原理认识较浅,因此建议是掌握助手函数的内部实现原理后再来决定在项目规范中是否需要使用助手函数,以及如何使用。

毕竟有些场景下,助手函数是非常简单实用的,例如:

publicfunctiongetUser($id){

$user=User::getOrEmpty($id);returnjson($user);

}

产品交付给客户的时候,有些时候助手函数能够让客户自定义模板的时候更方便。

如果你需要额外定义或者覆盖原有的助手函数,可以直接在应用的common.php公共文件中定义。

配置规范

线上环境和本地测试环境应该使用一致的配置文件,差异化的配置使用环境变量方式处理。本地环境可以通过定义.env文件(注意添加到忽略文件列表)来模拟环境变量。

在你需要差异化配置的参数中使用env函数定义,例如:

\hThinkPHP知识库

然后在环境变量中或者本地.env中定义

DB_HOST=2

尽量不要在配置文件以外使用env函数获取配置参数。统一使用config函数获取配置参数。

除了定义配置文件之外,避免使用动态配置功能,保持仅读取配置参数的良好习惯。

如果需要提高配置文件的性能,可以考虑使用Yaconf扩展。安装

composertopthink/think-yaconf

?志规范

日志记录建议直接使用PSR-3规范提供的接口方法记录,例如:

Log::record(测试日志,error);Log::record(测试日志,info);

应当改为

Log::error(测试日志);Log::info(测试日志);

支持的方法包括debug, info, notice, warning, error, critical, alert,emergency以及用于SQL日志记录的sql方法。

默认情况下,日志是延时写入的,如果要实时写入日志信息,可以使用write方法

Log::wirte(测试日志,info);

确保设置日志的最大数量限制,避免日志空间过大导致存储空间占满。

\hThinkPHP知识库

超过设置的数量后,最早的日志将会被自动清理。

如果需要把日志接入阿里云,可以设置为单一日志文件,具体可以参考\h:thinkphp日志接入阿里\h云日志系统

规范部署

请务必把你的WEB根目录指向public目录而不是应用根目录,并且不要随意更改入口文件的位置。public目录下面不要放除了入口文件和资源文件以外的其它应用文件。

保持测试环境和部署环境的?致性

在开发过程中,应该尽量保持你的测试环境和正式部署环境的一致性,包括运行环境和版本,无

文档评论(0)

MAX知识点 + 关注
实名认证
文档贡献者

资料收集达人

版权声明书
用户编号:8053033065000020

1亿VIP精品文档

相关文档