ThinkPHP8命名规范-ThinkPHP8知识详解

本文主要讲解thinkphp8的命名规范,主要包括:遵循PHP自身的PSR-2命名规范和PSR-4自动加载规范、目录和文件命名规范、函数和类、属性命名规范、常量和配置命名规范、数据表和字段命名规范、不能使用PHP保留字。

在使用thinkphp8开发项目之前,应理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。

ThinkPHP8命名规范

一、遵循PHP自身的PSR-2命名规范和PSR-4自动加载规范

二、目录和文件命名规范

目录使用小写+下划线;

类库、函数文件统一以.php为后缀;

类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;

类(包含接口和Trait)文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;

类名(包括接口和Trait)和文件名保持一致,统一采用驼峰法命名(首字母大写);

三、函数和类、属性命名规范

类的命名采用驼峰法(首字母大写),例如 User、UserType;

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

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

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

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

四、常量和配置命名规范

常量以大写字母和下划线命名,例如 APP_PATH;

配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;

环境变量定义使用大写字母和下划线命名,例如APP_DEBUG;

五、数据表和字段命名规范

数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表及字段命名。

六、不能使用PHP保留字

不能使用PHP保留字作为常量、类名和方法名,以及命名空间的命名,否则会造成系统错误。

1、关键词在 PHP 中有着特定的语法和功能,通过它们可以实现不同的编程逻辑和控制流程,从而构建出功能丰富的 PHP 应用程序。

2、这些词语在 PHP 中有着特殊的意义。

3、它们中有些像是函数,有些像是常量,但是它们不是真的,它们只是语言结构的一部分。

4、不能使用它们的任何一个作为常量、类名或函数名。

5、它们可以被用作类的属性、常量以及类的方法名,或者接口名和 traits 名,除了 class 不能被用作常量名。

关键词列表(一行五个)

function、global、goto、if、implements

include、include_once、instanceof、insteadof、interface

isset()、list()、match、namespace、new

or、print、private、protected、public

readonly、require、require_once、return、static

switch、throw、trait、try、unset()

use、var、while、xor、yield

yield from

编译时常量

__CLASS__、__DIR__、__FILE__、__FUNCTION__、__LINE__、__METHOD__、__NAMESPACE__、__TRAIT__

PSR-2命名规范、PSR-4自动加载规范及以上关键字的意思,到时候我们重新发文,进行详细解释。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#使用OpenCv(OpenCVSharp)图像全局二值化处理实例

本文实例演示C#语言中如何使用OpenCv(OpenCVSharp)对图像进行全局二值化处理。 目录 图像二值化原理 函数原型 参数说明 实例 效果 图像二值化原理

线程转换状态,傻傻分不清等待和阻塞吗?你还在暴力的停止线程吗?

线程切换 线程创建之后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,也就是超…

腾讯云服务器竞价实例是什么?适用于什么行业?有啥优惠?

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例,什么是竞价实例?竞价实例和按量付费相类似,优势是价格更划算,缺点是云服务器实例有被自动释放风险,腾讯云服务器网来详细说下什么是竞价实例?以及…

GUI、多线程编程、网络编程简介

GUI、多线程编程、网络编程简介 文章目录 GUI简介什么是GUIGUI有什么用使用方法 多线程编程什么是多线程编程多线程编程有什么用提高程序的响应能力提高程序的性能实现异步编程并发数据访问和共享资源实现复杂的算法和任务分解 进行多线程编程的步骤 网络编程什么是网络编程网络…

JMeter处理接口签名之BeanShell实现MD5加密

项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种:BeanShell实现MD5加密和函数助手实现MD5加密,之前已经分享过了函数助手实现MD5加密&…

React如何配置env环境变量

React版本: "react": "^18.2.0" 1、在package.json平级目录下创建.env文件 2、在‘.env’文件里配置环境变量 【1】PUBLIC_URL 描述:编译时文件的base-href 官方描述: // We use PUBLIC_URL environment variable …

从KM到Cure Models:常用生存分析方法的优缺点

一、引言 生存分析是一种用于研究个体生命长度或事件发生时间的统计方法。在许多领域中,如医学、社会学、经济学和工程学等,生存分析被广泛应用于分析个体的生存时间,并研究相关因素对生存时间的影响。通过生存分析,我们可以评估特…

交换排序——选择排序和冒泡排序的区别是什么?

今天重温一下算法,其实刚开始我觉得冒泡排序和选择排序是一样的,因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据,通过不断思考和学习才明白,两者还是有区别的。 冒泡排序 概念 冒泡排序(Bubble Sort)&#xff0…

SpringBoot使用thymeleaf模版引擎配置自定义错误页面

1、要在Spring Boot项目中配置自定义的错误页面&#xff0c;你可以遵循以下步骤&#xff1a; 1.1、pom.xml引入thymeleaf <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><…

【正版系统】2023热门短剧SAAS版开源 | 小程序+APP+公众号H5

当我们在刷百度、D音、K手等各种新闻或短视频时经常会刷到剧情很有吸引力的短剧广告&#xff0c;我们点击广告链接即可进入短剧小程序&#xff0c;小程序运营者通过先免费看几集为诱耳然后在情节高潮时弹出充值或开VIP会员才能继续看的模式来赚钱&#xff0c;以超级赘婿、乡村小…

VS Code中C++程序的调试(Debug)功能

有一个.vscode文件&#xff0c;存放当前工作区相关配置文件的目录。 launch.json {"version": "0.2.0","configurations": [{"name": "gcc.exe - 生成和调试活动文件", // 该调试任务的名字&#xff0c;启动调试时会在待…

TCP/IP 下的计算机网络江湖

〇、引言 在当今数字化时代,计算机网络宛如广袤江湖,涵盖着五大门派:物理层、数据链路层、网络层、传输层和应用层。每个门派独具技能,共同构筑着现代网络的框架。物理层宛如江湖基石,将比特流传输;数据链路层如武林传承,组织数据帧传递;网络层则像导航大师,寻找传送路…

使用阿里云服务器搭建PostgreSQL主从架构图文流程

阿里云百科分享使用阿里云服务器搭建PostgreSQL主从架构图文流程&#xff0c;PostgreSQL被业界誉为最先进的开源数据库&#xff0c;支持NoSQL数据类型&#xff08;JSON/XML/hstore&#xff09;。本文档介绍在CentOS 7操作系统的ECS实例上搭建PostgreSQL主从架构的操作步骤。 目…

【Linux操作系统】文件描述符fd

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️林 子       &#x1f6f0;️博客专栏&#xff1a;✈️ Linux之路       &#x1f6f0;️社区 :✈️ 进步学堂       &#x1…

python单元测试框架(测试固件、批量执行)

python测试框架 在Python语言中应用最广泛的单元测试框架是unittest和pytest,unittest属于标准库&#xff0c;只要安装了Python解释器后就可以直接导入使用了,pytest是第三方的库&#xff0c;需要单独的安装。 1.白盒测试原理 在软件架构的层面来说&#xff0c;测试最核心的…

Kotlin入门:变量和函数——02

目录 一、Kotlin 基本数据类型 ​编辑 二、变量 val 关键字&#xff1a; var 关键字: 类型推断: 可空类型: 三、函数 基本函数语法&#xff1a; 单表达式函数&#xff1a; 默认参数值&#xff1a; 命名参数&#xff1a; 一、Kotlin 基本数据类型 Kotlin 的基本数…

vue数据更新table内容不更新解决方法

场景&#xff1a; table组件绑定的数据变化时&#xff0c;页面没有重新渲染&#xff0c;常见于子组件中使用table组件 原理&#xff1a; 创建实例时 数组在vue中没有被监听到&#xff0c;属于非响应式数据&#xff0c;数组的下标变化无法监听到 解决方式&#xff1a; <e…

SpringSecurity如何放行资源

SpringSecurity配置放行资源 permitAll配置实例 EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Overridepublic void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/css/**", …

数据库事务ACID介绍

一、ACID简介 ACID&#xff0c;是指数据库管理系统&#xff08;DBMS&#xff09;在增删改数据的的过程中&#xff0c;为保证事务&#xff08;transaction&#xff09;的准确性&#xff0c;可靠性等&#xff0c;所必须具备的四个特性&#xff1a;原子性&#xff08;atomicity&a…

【MFC】09.MFC视图-笔记

MFC视图窗口&#xff1a;CView类 显示数据/画面 我们之前的绘图消息&#xff0c;都是在框架类上画出来的 视图窗口就覆盖在框架窗口上 视图窗口本质上也是窗口&#xff0c;只是和框架窗口风格不同 CView类也继承于CWnd类 CView也能处理消息&#xff0c;因为它继承于CWnd类…