zoukankan      html  css  js  c++  java
  • PHP开发各种规范,面试秘籍!

    基本约定

    源文件

    代码使用<?php开头,忽略闭合标签?>

    文件格式必须是无BOM UTF-8格式

    一个文件只声明一种类型,如class和interface不能混写在一个源文件中

    缩进

    使用4个空格来缩进,IDE可以设置

    行长度

    每行120个字符

    关键字

    所有关键字均为小写,如true、false

    命名

    类名为大驼峰法,如UserModel

    类方法名为小驼峰法,如getUserId()

    函数使用小写字母加_组合,如get_cookie()

    变量名使用小驼峰法,如$userId

    常量定义为大写字母加_组合,如IS_DEBUG

    代码注释标签

    类文件中对类、方法、属性进行注释,使用@param @return @throwns

    @param注释写出详解,如@param string $username 用户名

     

    业务模块

    路由为小写字母加_组成,如/api/get_user_info

    View层负责数据展示

    Controller层负责输入参数校验,最外层捕捉异常,调用Logic和View视图层

    Logic层负责具体业务逻辑,调用Model层,返回处理数据

    Model层负责数据表查询和关联关系

    异常类需分清功能,如ParamException表示参数错误,UserException表示自定义异常

    异常需分类定义code,使用PHP类常量代替,如

    <?php
    namespace appexceptionscodes;
    
    class UserExceptionCode extends BaseExceptionCode {
      const NO_AUTH       = 1000001;
      const NO_AUTH_MSG     = '不具有权限';
      const STATUS_EXCEPTION   = 1000002;
      const STATUS_EXCEPTION_MSG = '状态异常';    
    }

    数据表文件如有Enum类型,使用PHP类常量代替,如

    <?php
    <?php
    namespace appenums;
    
    class UserEnum extends BaseEnum {
      const STATUS_DELETED = -1;// 已删除
      const STATUS_DISABLE = 0;// 禁用
      const STATUS_ENABLE = 1;// 正常
    
      const AUTH_GUEST     = 1;// 匿名用户
      const AUTH_GENERAL_ADMIN = 2;// 普通管理员
      const AUTH_SUPER_ADMIN  = 3;// 超级管理员
    }

    其中STATUS和AUTH为数据表映射字段名

    Api接口输出,示例

    {
      "code" : 0,
      "msg" : "success",
      "data" : {
        "userId" : 100
      }
    }

    其中code与msg为必填字段,data为空的情况下不填,示例

    {
      "code" : 0,
      "msg" : "success",
      "data" : {
        "userId" : 100
      }
    }

    其它

    数组,键为字符串时候使用单引号,只有一个键时候使用单行,示例

    $arr = [ 'userId' => 100 ];

    多个键时候使用多行,示例

    $arr = [
      'id'    => 100,
      'username' => 'admin',
    ];

    还有很多很多规范,大家可以去找一些学习!

  • 相关阅读:
    线程池
    非XA式Spring分布式事务
    好的架构不是设计出来的,而是演进出来的
    缓存穿透
    【转】MySQL数据库主从同步管理
    setup 桌面化设置网卡
    gitlab web登入密码忘记以后可以用如下方式修改密码
    kvm与selinux
    linux下跳板机跟客户端之间无密码登陆
    LINUX下安装TeamViewer
  • 原文地址:https://www.cnblogs.com/a609251438/p/11963182.html
Copyright © 2011-2022 走看看