这个规范也不多,七点如下:

1. Overview

  • Files MUST use only <?php and <?= tags.

  • Files MUST use only UTF-8 without BOM for PHP code.

  • Files SHOULD either declare symbols (classes, functions, constants, etc.) orcause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.

  • Namespaces and classes MUST follow an "autoloading" PSR: [PSR-0PSR-4].

  • Class names MUST be declared in StudlyCaps.

  • Class constants MUST be declared in all upper case with underscore separators.

  • Method names MUST be declared in camelCase.

第1条

这个基本都是大家都懂得的,PHP代码必须只使用长标签(<?php ?>)或者短输出式标签(<?= ?>);而不要使用其他标签。

之所以说这个,是因为我们在学习PHP的时候,一般的教材都告诉我们说,php有4种标记风格:php的4种标记风格 所以,很多人就乱来了。瞎鸡巴写。特别是asp风格的兼职是折磨好么!!!

 

第2条

这个不多说,保存的时候格式必须是无BOM的UTF-8格式,否则会出现很多无法解释的千奇百怪的问题。千万别傻逼的用windows下的text文本编辑器保存文件啊

 

第3条

这个通俗的说呢。就是别把一些输出和修改的操作(副作用) 和 类文件混合在一起,专注一点,这个文件专门来声明class, 那个文件专门来修改配置文件,别混在一起写:

所以,以下的这个文件是有问题的,最好不要这样:

// 副作用:修改了ini配置

ini_set('error_reporting', E_ALL);

// 副作用:载入了文件

include "file.php";

// 副作用:产生了输出

echo "<html>\n";

// 声明 function

function foo()

{

    // 函数体

}

你看上面看起来多乱啊。最好全部分开来写:

namespace Lib;

class Name

{

    public function __construct()

    {

        echo __NAMESPACE__ . "<br>";

    }

    public static function test()

    {

        echo __NAMESPACE__ . ' static function test <br>';

}

}

修改ini:

 

ini_set('error_reporting', E_ALL);

require 文件:

require DIR . '/loading.php';

spl_autoload_register("\\AutoLoading\\loading::autoload");

你看是不是整齐好看多了。当然这个是很难约束的。自己仔细划分。

 

第4条

第4条是约束namespace的,前面已经说过,不多说。值得说的是名字要是驼峰方式来

 

第5条

class name必须要用驼峰方式写,驼峰又分小驼峰和大驼峰(小驼峰是第一个字母是小写)这样写看着舒服也比较规范,不做要求,反正是驼峰就可以了。我喜欢用小驼峰:

class getUserInfo

{

}

第6条

是规定类中的常量名(const)声明必须要全部大小,如果有多个单词,就用_分开:

class getUserInfo

{

    //全部大写

    const NAME = 'phper';

    //用_隔开

    const HOUSE_INFO = '已经大上海买房'

    public function getUserName()

{

         //

    }

}

 

第7条

method name必须要用驼峰方式写,大小驼峰都可以,不做要求,我喜欢用小驼峰:

 

class getUserInfo

{

    public function getUserName()

    {

        //

    }

}

第12篇 PSR-1规范的更多相关文章

  1. 《JavaScript高级程序设计》学习笔记12篇

    写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的 ...

  2. Spring第12篇—— Spring对Hibernate的SessionFactory的集成功能

    由于Spring和Hibernate处于不同的层次,Spring关心的是业务逻辑之间的组合关系,Spring提供了对他们的强大的管理能力, 而Hibernate完成了OR的映射,使开发人员不用再去关心 ...

  3. PHP PSR 代码规范基本介绍

    PSR 是 PHP Standard Recommendation 的简写,即PHP推荐标准. 目前通过的规范有 PSR-0(Autoloading Standard).PSR-1(Basic Cod ...

  4. Yeslab 华为安全HCIE七门之-防火墙基础(12篇)

    Yeslab 华为安全HCIE七门之-防火墙基础(12篇) Yeslab 全套华为安全HCIE七门之第二门防火墙基础(12篇),第一门课论坛很早就有了,可自行下载,后面的陆续分享给大家. 华为安全HC ...

  5. Mysql高手系列 - 第12篇:子查询详解

    这是Mysql系列第12篇. 环境:mysql5.7.25,cmd命令中进行演示. 本章节非常重要. 子查询 出现在select语句中的select语句,称为子查询或内查询. 外部的select查询语 ...

  6. PHP PSR标准规范

    PHP PSR标准规范,PHP开发者都需要遵循规范. 官网(英文版本): https://www.php-fig.org 官网(中文版本): https://psr.phphub.org

  7. PSR标准规范

    PSR标准规范 基本代码规范 PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码: 类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范: 类中的常量所有字母都 必须 大写,单 ...

  8. CVPR2020文章汇总 | 点云处理、三维重建、姿态估计、SLAM、3D数据集等(12篇)

    作者:Tom Hardy Date:2020-04-15 来源:CVPR2020文章汇总 | 点云处理.三维重建.姿态估计.SLAM.3D数据集等(12篇) 1.PVN3D: A Deep Point ...

  9. psr的规范

    基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 "必须"("MUST")."一定不可 ...

随机推荐

  1. excel 拖拽计算时,固定一个数

    $ 表示静态引用(也叫绝对引用)的意思.即固定引用的单元格的行或列. $A1即固定列为A,$A$2即固定引用为A列2行的单元格. A$3则只固定引用为第三行. 我们在使用excel拖拽计算时,常遇到这 ...

  2. java手动分页处理

    经常我们在操作数据库的时候都会用到分页,而且很多框架也提供了分页功能,像PageHelper. 但是在有些项目中,需要将数据查询出来进行手动分页,那么原理是什么呢? 其实很简单,首先需要知道数据总量, ...

  3. spring mvc : 中文传值(post/get)中文乱码

    请将以下代码放入 web.xml文件中,注意存放顺序,否则会报错.filter应该放在context-param后面: <!-- 字符过滤器 --> <filter> < ...

  4. GO学习笔记:函数传值与传指针

    当我们传一个参数值到被调用函数里面时,实际上是传了这个值的一份copy,当在被调用函数中修改参数值的时候,调用函数中相应实参不会发生任何变化,因为数值变化只作用在copy上. 为了验证我们上面的说法, ...

  5. idea debug调试快捷键

    F9            resume programe 恢复程序 Alt+F10       show execution point 显示执行断点 F8            Step Over ...

  6. linux Centos7 下vsftpd 安装与配 FTP

    一.说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp). 我们这 ...

  7. 【Wannafly挑战赛9-C】列一列(斐波那契)

    链接:https://www.nowcoder.net/acm/contest/71/C 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算非常精准,但 ...

  8. Python基础学习(第9天)

    第九课:动态类型 1.在Python中,有一类特殊的对象,是专门用来存储数据的,常见的有数字.字符串.数列.字典等.这些对象是存储在内存中的实体,我们并不能直接接触到它们,在程序中接触的是对象名,是指 ...

  9. Django 常见的异常

    Django 常见的异常 1 'WSGIRequest' object has no attribute 'user' Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CL ...

  10. Re-install Flyme or Native Google Android on Meizu MX4 Ubuntu (by quqi99)

    作者:张华 发表于:2017-06-23 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) ## ...