编码规范
1. 代码清晰度
无规矩不成方圆,编程也是有套路的,好的代码不仅要好的性能,还要有好的规范。
如果代码没有按照一定的规范进行编写,那么代码的可维护性就会很差,相信任何人都不太愿意接手不规范的代码。代码的清晰度是一个衡量开发人员编码素质的重要标准。
2. PSR规范
每一个编程语言都有自己的编码规范,
PHP
也不例外,PHP
语言公认的编码规范就是PSR
规范,PSR
规范官方网址https://www.php-fig.org/psr/。
PSR
是PHP Standard Recommendations
的简写,由PHP FIG
组织制定的PHP
规范,FIG
是Framework Interoperability Group
(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于Laravel
,Joomla
,Drupal
,Composer
,Phalcon
,Slim
,Symfony
,Zend Framework
等)。
- 2.1 主要psr规范
规范名称 | 内容 |
---|---|
psr-1 | 语法规范 |
psr-3 | 日志接口规范 |
psr-4 | 类自动加载规范 |
psr-6 | 缓存接口规范 |
psr-11 | 容器接口规范 |
psr-16 | 简单缓存接口规范 |
- 2.2
PSR
规范术语
术语 | 含义 |
---|---|
MUST | 必须 |
MUST NOT | 一定不能 |
REQUIRED | 需要 |
SHALL | 将会 |
SHALL NOT | 不会 |
SHOULD | 应该 |
SHOULD NOT | 不应该 |
RECOMMENDED | 推荐 |
MAY | 可以 |
OPTIONAL | 可选的 |
3. PSR-1
PSR-1
规范主要对PHP文件及语法做了规范,主要内容如下。
- 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.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both
- Namespaces and classes MUST follow an “autoloading” PSR: [PSR-0, PSR-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
4. 符合PSR-1规范的示例类
region
注释块对Phpstorm
ide
友好,阅读代码的时候可以折叠,建议在实际开发中将相关联代码块整体用region
注释块标注功能,便于阅读代码。
<?php
//文件名以<?php开始,命名空间和目录保持一致,遵从PSR-4类自动加载
namespace app\models;
//类名称使用大驼峰
class UserModel
{
//region 1.1 常量规范
//常量所有单词全部大写,单词间用下划线分隔
const SOURCE_PC = 1;
const SOURCE_ANDROID = 2;
const SOURCE_IOS = 3;
const SOURCE_WEIXIN = 4;
//endregion
//region 1.2 属性规范
//public属性使用小驼峰
public $userId;
//static属性规范与实例属性规范一致
public static $sourceMap = [
self::SOURCE_PC => 'PC',
self::SOURCE_ANDROID => 'ANDROID',
self::SOURCE_IOS => 'IOS',
self::SOURCE_WEIXIN => 'WEIXIN',
];
//protected属性使用下划线开头,单词遵从小驼峰
protected $_loginTimes = 0;
//static属性规范与实例属性规范一致
protected static $_dataPool;
//private属性使用下划线开头,单词遵从小驼峰
private $_createTime;
//static属性规范与实例属性规范一致
private static $_objectPool;
//只读属性实现
public function getCreateTime()
{
return $this->_createTime;
}
//endregion
//region 1.3 方法规范
//public方法名称使用小驼峰
public function getInfo($id)
{
}
//static方法规范与实例方法规范一致
public static function getDb()
{
}
//protected方法以下划线开头,单词遵从小驼峰
protected function _formatInfo($info = [])
{
}
//static方法规范与实例方法规范一致
protected static function _getData($key)
{
}
//private方法以下划线开头,单词遵从小驼峰
private function _initSource()
{
}
//static方法规范与实例方法规范一致
private function _getObject($key)
{
}
//endregion
}
好了,看到这里你已经掌握了
PSR-1
规范的大部分内容了,你离大神的距离又近了一步了哦!加油!