PHP符合PSR编程规范的实例分享
程序员文章站
2024-04-01 19:08:40
前言
关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(yii,laravel) 都已经支持compos...
前言
关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(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-7 http消息接口
实例
<?php namespace standard; // 顶部命名空间 // 空一行 use test\testclass;//use引入类 /** * 类描述 * * 类名必须大写开头驼峰. */ abstract class standardexample // {}必须换行 { /** * 常量描述. * * @var string */ const this_is_a_const = ''; // 常量全部大写下划线分割 /** * 属性描述. * * @var string */ public $nametest = ''; // 属性名称建议开头小写驼峰 // 成员属性必须添加public(不能省略), private, protected修饰符 /** * 属性描述. * * @var string */ private $_privatenametest = ''; // 类私有成员属性,【个人建议】下划线小写开头驼峰 /** * 构造函数. * * 构造函数描述 * * @param string $value 形参名称/描述 */ public function __construct($value = '')// 成员方法必须添加public(不能省略), private, protected修饰符 {// {}必须换行 $this->nametest = new testclass(); // 链式操作 $this->nametest->functionone() ->functiontwo() ->functionthree(); // 一段代码逻辑执行完毕 换行 // code... } /** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @return 返回值类型 返回值描述 * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值) */ public function testfunction($value = '')// 成员方法必须小写开头驼峰 { // code... } /** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @return 返回值类型 返回值描述 */ private function _privatetestfunction($value = '')// 私有成员方法【个人建议】下划线小写开头驼峰 { // code... } /** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @return 返回值类型 返回值描述 */ public static function staticfunction($value = '')// static位于修饰符之后 { // code... } /** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @return 返回值类型 返回值描述 */ abstract public function abstractfunction($value = ''); // abstract位于修饰符之前 /** * 成员方法名称. * * 成员方法描述 * * @param string $value 形参名称/描述 * * @return 返回值类型 返回值描述 */ final public function finalfunction($value = '')// final位于修饰符之前 { // code... } /** * 成员方法名称. * * 成员方法描述 * * @param string $valueone 形参名称/描述 * @param string $valuetwo 形参名称/描述 * @param string $valuethree 形参名称/描述 * @param string $valuefour 形参名称/描述 * @param string $valuefive 形参名称/描述 * @param string $valuesix 形参名称/描述 * * @return 返回值类型 返回值描述 */ public function toolangfunction( $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... } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。