前言关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(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消息接口
实例<?phpnamespace Standard; // 顶部命名空间// 空一行use TestTestClass;//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...} }}
总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。