- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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目录下面不要放除了入口文件和资源文件以外的其它应用文件。
保持测试环境和部署环境的?致性
在开发过程中,应该尽量保持你的测试环境和正式部署环境的一致性,包括运行环境和版本,无
您可能关注的文档
- ThinkPHP开发指北完整版.docx
- CentOS搭建LAMP平台+Web控制面板管理.docx
- 1891-1938年青岛城市规划实践与功能形态发展演化浅析.docx
- “过紧日子”背景下高校预算绩效管理路径优化研究.docx
- 产业园区规划环评对可持续发展的促进作用研究.docx
- 超声引导下血管缝扎并铜针介入栓塞治疗海绵状血管瘤.docx
- 大连市水务集团原水板块发展规划研究.docx
- 深化多元经营 拓展养老市场.docx
- 深圳市地下交通发展现状与规划思考.docx
- 局部应用不同剂量的氨甲磺酸对股骨粗隆间骨折术后隐性失血的影响.docx
- 急性肾功能衰竭综合征的肾血管介入性诊治4例报告并文献复习.docx
- 基于血流动力学、镇痛效果分析右美托咪定用于老年患者髋部骨折术的效果.docx
- 价格打骨折 小心统筹车险.docx
- 交通伤导致骨盆骨折合并多发损伤患者一体化救治体系的效果研究.docx
- 多层螺旋CT与DR片诊断肋骨骨折的临床分析.docx
- 儿童肱骨髁上骨折后尺神经损伤恢复的预测因素分析.docx
- 康复联合舒适护理在手骨折患者中的应用及对其依从性的影响.docx
- 机器人辅助老年股骨粗隆间骨折内固定术后康复.docx
- 超声辅助定位在老年髋部骨折患者椎管内麻醉中的应用:前瞻性随机对照研究.docx
- 两岸《经济日报》全面合作拉开帷幕.docx
最近下载
- 非银行金融机构资产风险分类指导原则(试行) .pdf VIP
- 胆囊结石胆石症防治中国专家共识解读PPT课件.pptx
- 三级安全技术交底定向钻.docx VIP
- 常微分期末复习试题(华南理工大学)常微分方程试卷1.doc VIP
- 天津科技大学__数据库系统试卷及答案.pdf VIP
- 黑布林阅读初一7《渔夫和他的灵魂》中文版.doc
- 8《突破自我设限》教学设计 北师大版心理健康七年级下册.pdf VIP
- 船用主配电板出厂检验.doc VIP
- 2023年临汾卫校附属医院临汾市第二人民医院护士招聘笔试高频试题摘选含答案解析.docx VIP
- 北师大版数学二年级上册 认识人民币 教学设计.docx VIP
原创力文档


文档评论(0)