===========================框架=========================

· 使用laravel框架,原因:tp的框架路由和orm没有laravel好用

· 使用强制路由,方便接口多时,分多版本,分文件夹等操作

· 框架采用最新的LTS版本

===========================接口=========================

· 接口开发注意字段类型,字段是int,查询成功失败都要返回int(对接java等强类型语言方便)

· 使用with,返回null或对象,数组无值返回空数组。(使用with直接返回,尽量不用格式化)

· 查询接口用GET、其他用POST

===========================代码=========================

· 所有数据库操作应统一使用model,尽量补使用db或原生

· 尽量使用with进行关联,其原理是单表查询后,使用代码进行关联,大表或多表使用join会很慢

· 1个表 对应 1个model 对应 1个控制器 对应 1个service

· 开发时应考虑是否可以把代码直接复制到多个服务器上,不需要修改任何代码。以便后续解决性能问题。

===========================数据库=========================

· 数据库尽量不要使用null,跟强类型语言对接时,字段不存在时不应改变其类型

· 设计表是,考虑适当冗余,避免关联表

· 需要排序时,根据id排序比根据时间排序速度更快

· 在MySQL 5.7版本以后,查询缓存默认是禁用的。这是因为查询缓存存在很多问题,比如并发性能问题、缓存失效问题等。MySQL官方建议不要使用查询缓存,而是通过优化查询语句、建立索引等方式来提高查询性能。

· 加了索引还是慢,可以考虑使用联合索引,where的顺序需要和联合索引的顺序一样,遵循从左到右匹配原则,where可以比联合索引少

· 如果不能用join,如跨数据库,关联排序并且分页,可以把B表需要排序的字段在A表冗余一份

php 开发规范的更多相关文章

  1. 我的公司培训讲义(1):.NET开发规范教程

    这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布.博文上了首页,感谢博客园团队推荐,也感谢所有园友的 ...

  2. 转载:移动web开发规范

    本文来源:http://blog.csdn.net/joueu/article/details/44329825 以下是规范建议,均是日常在开发当中的的一些经验,仅供参考. 移动web开发规范 一.头 ...

  3. php与数据库代码开发规范

    php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...

  4. 【敏捷开发】Android团队开发规范

    这里说的开发规范分成目录规范,项目和包名的命名规范,类,方法,变量和常量的命名规范这几种. 目录规范 目录规范——在开发中整体文件夹组织结构. Requirement——需求文档文件夹 Design— ...

  5. 从零开始编写自己的C#框架(3)——开发规范

    由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直 ...

  6. 从零开始编写自己的C#框架(3)——开发规范(转)

    由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直 ...

  7. Web前端开发规范文档(google规范)

    (Xee:其实没什么规范约束,但是养成一种好习惯,何乐而不为?) 区分大小写 xhtml  区分大小写,xhtml要求 标签名 属性名 值都要小写,并且要有双引号和 标签闭合. css 元素名称以及i ...

  8. 从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议

    稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.cla ...

  9. WEB前端开发规范

    WEB前端开发规范 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档.本文档如有不对或者不合适的地方请及时提出, 经讨论决定后方可更改. 基本 ...

  10. thinkphp开发规范

    1.编写目的     为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范.开发团队根据自己的实际情况,可以对本规范进行补充或裁减. ...

随机推荐

  1. HTML——input标签

    很多表单元素都是由一个个的 input 元素组成的.它是自闭合标签,根据其 type 属性值的不同分为很多种,例如单行文本框.密码框.单选按钮.复选框.隐藏域.文件上传域.普通按钮.提交按钮以及重置按 ...

  2. Java自增

    Java自增 本文分为以下部分: 栗子 栗子解释 来点复杂的 字节码解读 总结 栗子 java存在一种神奇的操作符,++,自增1,但是经常分不清楚 i++ 和++i 两者的区别,虽然最后结果可能都是 ...

  3. nginx四层负载nginx七层负载,nginx基于nginx-sticky会话保持.

    1. nginx负载均衡实战 nginx提供了 4 7层负载均衡. 可根据业务需求选择不同负载均衡策略. 1.1.1 nginx四层负载均衡[网络层TCP负载] 不支持动静分离,但支持 http my ...

  4. umask永久修改用户创建文件权限

    Linux里永久设置用户创建文件权限的配置文件是/etc/profile.可以在该文件中添加umask命令来设置默认权限.具体操作步骤如下: 打开/etc/profile文件:sudo vi /etc ...

  5. python相关常见安装问题

    1 Centos7安装pip 参考链接:centos7 pip升级 - fuhaizi - 博客园 (cnblogs.com) Centos7默认pip版本: 使用默认pip版本安装numpy库,会报 ...

  6. JavaSE的运算符

    [Top] 算术运算 分类 运算符 算数运算符 * / + - % ++ -- 赋值运算符 +=, -=, /=, *=, %=(扩展赋值运算符), = 比较(关系)运算符 == != > &l ...

  7. uni-app mpvue wepy websocket的介绍

    uni-app 网址:https://uniapp.dcloud.io/ uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以 ...

  8. 关于使用Gitlab CI-CD

    关于使用 Gitlab CI/CD 如果是个人建议自己写脚本,手动运行,而不是使用 Gitlab CI/CD. 免费的 Runner 需要 Credit Card!

  9. kettle从入门到精通 第三十二课 mysql 数据连接集群/分区配置

    1.这里的集群实际上是数据分区或者分片的概念,如中国全国的学生,应该不会都存在一张表里面,有可能每个省市一个表进行存储. 2.集群(分区),如下图所示 设置在"集群"标签,勾选&q ...

  10. MapStruct - 注解汇总

    @Mapper @Mapper 将接口或抽象类标记为映射器,并自动生成映射实现类代码. public @interface Mapper { // 引入其他其他映射器 Class<?>[] ...