PHP规范之PSR-1

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP规范之PSR-1脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

基本编码规范

此PHP标准包含了如何去编写高通用性代码中那些标准元素(class,function ,ect.)的正确姿势!
RFC 2119文档中描述了关键字 “MUST”,“MUST NOT”,“SHALL”,“SHALL”,“SHALL NOT”,“SHOULD”,“SHOULD NOT”,“RECOMMENDED”,“MAY”,“OPTIONAL”。

1.总览

  • 文件必须使用<?php<?=标签打头。

  • 文件编码必须使用UTF-8 无bom头的格式。

  • 文件可声明类,方法,常量,或者引发“副作用”(输出语句改变PHP.ini的代码,etc.),但是不应该同时包含着两项。

  • 命名空间需要遵循自动加载规范:PSR-0,PSR-4。

  • 类名必须为StudlyCaps格式(首字母大写的驼峰式)。

  • 常量必须要由大写字母组成,单词间使用下划线(_)连接。

  • 方法必须要使用camelCase格式(首字母小的的驼峰式)

文件

2.1 PHp标签

PHP代码必须写在<?php ?>或者简短声明<?=?>(php.ini中short_oPEn_tag为On的情况下,不推荐),不能使用其他标签。

2.2编码格式

PHP代码必须使用UTF-8无BOM头的格式保存。

2.3 副作用

一个文件可以声明类,方法,常量等,也可以执行那些"副作用"逻辑,但是不能同时做着两件事!
“副作用”这个词代表这个文件执行了跟此文件中声明的类,方法,常量没有直接联系的逻辑。
“副作用”包含:产生输出,直接使用requireinclude包含文件,连接外部服务,修改php.ini中的设置,引发错误或异常,修改全局或静态变量,读写文件等等
下面这个例子就是一个文件同时包含声明和“副作用”

<?php
// 副作用:修改了php.ini的配置
ini_set('error_reporting', E_ALL);

// 副作用:引入文件
include "file.php";

// 副作用:产生输出
echo "<htML>n";

// declaration
function foo()
{
    // function body
}

下面这个例子只包括声明,没有“副作用”

<?php
// declaration
function foo()
{
    // function body
}

// 条件语句不是“副作用”
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

命名空间和类名

命名空间和类命名必须遵循一项自动加载规范:PSR-0或PSR-4。
这表示一个文件只能有一个类,并且这个类只有有一层命名空间:顶层空间为开发商名
类名必须声明为StudlyCaps(首字母大写的驼峰式)。
PHP5.3和之后的版本必须使用规范的命名空间。
例子:

<?php
// PHP 5.3 and later:
namespace VendorModel;

class Foo
{
}

php5.2.x 和之前的版本应该使用由Vendor_+类名的形式声明类,作为虚拟命名空间。

<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}

4 类常量,属性,方法

这里的类指 Classes,interfaces,traits。这三种类型都要遵守以下规范

4.1 常量

类常量必须由大写字母组成,单词间由下划线组成。例:

<?php
namespace VendorModel;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}

4.2 属性

属性名可以使用$StudlyCaps(大写字母开头的驼峰式), $camelCase(小写字母开头的驼峰式), $under_score(下线线作为分隔符的命名)。一旦使用了其中的某一项命名凡是,应该在一定的代码内保持一致(库,包,类,或者方法范围内)。

4.3 方法

方法必须被声明为camelCase(小写字母打头的驼峰似)。

其他

注:本文非标准翻译
@H_339_304@PHP规范之PSR-1

脚本宝典总结

以上是脚本宝典为你收集整理的PHP规范之PSR-1全部内容,希望文章能够帮你解决PHP规范之PSR-1所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。