PHP符合PSR编程规范的实例分享
前言
关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(Yii,Laravel)都已经支持Composer并且加入了PHP-FIG(php框架程序组)。
其中Composer的自动加载就支持PHP-FIG指定的PSR-0和PSR-4规范来实现自动加载机制,并且Composer推荐使用PSR-4
PHP-FIG
这是一个自愿非正式的机构,但是就目前对我们的影响来看,可能都已经默认为一个公信组织了,的的确确制定了不少非常好的规范
目前从官网看,已经投票(http://www.php-fig.org/psr/ )通过的有7个大的规范了
- PSR-0自动加载规范(官方已废弃,主要是php5.3以前没有命名空间)
- PSR-1编码规范
- PSR-2编码风格推荐
- PSR-3日志接口
- PSR-4改进的自动加载规范(官方推荐,规范更简洁调理清晰了)
- PSR-6缓存接口
- PSR-7HTTP消息接口
实例
<?php
namespaceStandard;//顶部命名空间
//空一行
useTest\TestClass;//use引入类
/**
*类描述
*
*类名必须大写开头驼峰.
*/
abstractclassStandardExample//{}必须换行
{
/**
*常量描述.
*
*@varstring
*/
constTHIS_IS_A_CONST='';//常量全部大写下划线分割
/**
*属性描述.
*
*@varstring
*/
public$nameTest='';//属性名称建议开头小写驼峰
//成员属性必须添加public(不能省略),private,protected修饰符
/**
*属性描述.
*
*@varstring
*/
private$_privateNameTest='';//类私有成员属性,【个人建议】下划线小写开头驼峰
/**
*构造函数.
*
*构造函数描述
*
*@paramstring$value形参名称/描述
*/
publicfunction__construct($value='')//成员方法必须添加public(不能省略),private,protected修饰符
{//{}必须换行
$this->nameTest=newTestClass();
//链式操作
$this->nameTest->functionOne()
->functionTwo()
->functionThree();
//一段代码逻辑执行完毕换行
//code...
}
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$value形参名称/描述
*
*@return返回值类型返回值描述
*返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
*/
publicfunctiontestFunction($value='')//成员方法必须小写开头驼峰
{
//code...
}
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$value形参名称/描述
*
*@return返回值类型返回值描述
*/
privatefunction_privateTestFunction($value='')//私有成员方法【个人建议】下划线小写开头驼峰
{
//code...
}
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$value形参名称/描述
*
*@return返回值类型返回值描述
*/
publicstaticfunctionstaticFunction($value='')//static位于修饰符之后
{
//code...
}
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$value形参名称/描述
*
*@return返回值类型返回值描述
*/
abstractpublicfunctionabstractFunction($value='');//abstract位于修饰符之前
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$value形参名称/描述
*
*@return返回值类型返回值描述
*/
finalpublicfunctionfinalFunction($value='')//final位于修饰符之前
{
//code...
}
/**
*成员方法名称.
*
*成员方法描述
*
*@paramstring$valueOne形参名称/描述
*@paramstring$valueTwo形参名称/描述
*@paramstring$valueThree形参名称/描述
*@paramstring$valueFour形参名称/描述
*@paramstring$valueFive形参名称/描述
*@paramstring$valueSix形参名称/描述
*
*@return返回值类型返回值描述
*/
publicfunctiontooLangFunction(
$valueOne='',//变量命名可小写开头驼峰或者下划线命名,个人那习惯,据说下划线可读性好
$valueTwo='',
$valueThree='',
$valueFour='',
$valueFive='',
$valueSix='')//参数过多换行
{
if($valueOne===$valueTwo){//控制结构=>后加空格,同{一行,(右边和)左边不加空格
//code...
}
switch($valueThree){
case'value':
//code...
break;
default:
//code...
break;
}
do{
//code...
}while($valueFour<=10);
while($valueFive<=10){
//code...
}
for($i=0;$i<$valueSix;$i++){
//code...
}
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。