热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php开发遵循规范是什么

一、PHP相关命名规范1、方法命名方法,指的是在类中定义的函数,方法的命名使用驼峰法,并且首字母小写或者使用下划线_,例如:getUserName(),_parseType()

一、PHP相关命名规范

1、方法命名

方法,指的是在类中定义的函数,方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如:getUserName( ),

_parseType( ),通常下划线开头的方法属于私有方法;

2、函数命名

函数是指不在类中定义的函数,例如在公共文件中的函数。函数的命名使用小写字母和下划线的方式,例如 get_client_ip( );

3、变量命名

变量,也叫属性。属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属

性属于私有属性;

4、常量命名

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

5、配置参数命令

配置参数以大写字母和下划线命名,例如 HTML_CACHE_ON = 1;

二、编码风格规范

1、禁止出现多行空格

如果不是特殊需要,在代码文件中禁止出现多行空格。

2、缩进

代码中需要适当的缩进,否则会加大维护难度。

3、目录结构

一般框架都是有默认的目录结构,非特殊情况不允许修改目录结构,例如thinkphp默认的是MVC架构的目录结构,避免由于更改目录结

构带来的维护困难。Controller文件放在Controller目录 中,Model文件放在Model目录中,View文件放在View目录中,不要随意更改

目录的位置和目录名称。

三、安全

1、输入框

所有的输入框请设置最大长度,必填项请做必填的限制。例如帐号CHN00000001,只能输入11位,那么最大输入长度只能为11,并且添

加required="required"属性。

2、文本编辑器

前台页面尽量不要使用富文本编辑器,因为富文本编辑器可以输入代码,有很大的安全隐患。如果要使用,必须对提交内容进行过滤,例

如使用htmlspecialchars()进行过滤。

3、后台接收参数

PHP从表单获取url中获取参数必须进行字段类型判断。例如接收数字的参数不能含有其他字符,只能是数字,建议编写公共的检查接收

post和get参数的函数,对每一个参数值进行验证,防止注入恶意代码。

接收长篇内容的变量,例如留言内容等变量时来源gaodaimacom搞#代%码网,必须进行特殊字符的过滤操作。比如strip_tags()、htmlspecialchars()、htmlentities()等

函数可以起作用,防止用户注入恶意代码进行跨站脚本攻击。

4、权限控制

凡是需要登录之后才可以访问的页面加载页面之前必须做好登录检测,登录超时的必须重新登录。需要权限访问的页面和功能必须做好权

限控制和检测。

四、并发和大流量处理

1、重复提交

为了防止用户在提交表单时重复提交,表单必须设置提交验证。例如商城提交订单时,必须防止用户重复提交。Thinkphp框架中提供表

单令牌的功能可以防止重复提交,原生php也可以在打开页面前生成token,并保存在session,然后将token传递到页面表单字段,在表

单提交时将token一起提交,在后台接收时验证token,验证后销毁session的保存的token。

2、session

一次性验证的session使用后必须销毁,例如短信验证,表单验证等,防止一次性session被重复利用,例如在用户在注册时如果不销毁短



推荐阅读
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 利用 Python Socket 实现 ICMP 协议下的网络通信
    在计算机网络课程的2.1实验中,学生需要通过Python Socket编程实现一种基于ICMP协议的网络通信功能。与操作系统自带的Ping命令类似,该实验要求学生开发一个简化的、非标准的ICMP通信程序,以加深对ICMP协议及其在网络通信中的应用的理解。通过这一实验,学生将掌握如何使用Python Socket库来构建和解析ICMP数据包,并实现基本的网络探测功能。 ... [详细]
author-avatar
林老悲--
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有