编码规范

编码规范

1. 代码清晰度

无规矩不成方圆,编程也是有套路的,好的代码不仅要好的性能,还要有好的规范。

如果代码没有按照一定的规范进行编写,那么代码的可维护性就会很差,相信任何人都不太愿意接手不规范的代码。代码的清晰度是一个衡量开发人员编码素质的重要标准。

2. PSR规范

每一个编程语言都有自己的编码规范,PHP也不例外,PHP语言公认的编码规范就是PSR规范,PSR规范官方网址https://www.php-fig.org/psr/

PSRPHP Standard Recommendations的简写,由PHP FIG组织制定的PHP规范,FIGFramework 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规范的大部分内容了,你离大神的距离又近了一步了哦!加油!

学习更多内容: https://404.360tryst.com

我的视频课程: https://edu.csdn.net/course/detail/9933

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苍穹0113

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值