以下是前几天和公司PHP同事技术交流我的分享内容 存档

PSR 规范

http://www.php-fig.org/
https://psr.phphub.org/

PHP面向对象-父类,抽象类,接口,Trait

父类:http://www.php.net/manual/zh/language.oop5.inheritance.php
抽象类:http://www.php.net/manual/zh/language.oop5.abstract.php
接口:http://www.php.net/manual/zh/language.oop5.interfaces.php
Trait:http://www.php.net/manual/zh/language.oop5.traits.php

PHP标准库

http://www.php.net/manual/zh/book.spl.php

  1. 数据结构
  2. 迭代器
  3. 接口
  4. SPL 函数
  5. 各种类及接口

Composer 包管理器

官网:https://getcomposer.org/
中文网:http://www.phpcomposer.com/
包仓库:https://packagist.org/
包推荐:https://https://github.com/baiy/composer-package/

PHP新特征

  1. 异常
  2. 命名空间
  3. 闭包和匿名函数
  4. 生成器

最佳实践

  1. PHP升级文档
  2. 约定大于配置
  3. 自动加载
  4. PHP7

MYSQL规范

  1. 必须使用InnoDB存储引擎
  2. 必须使用UTF8(utf8mb4)字符集
  3. 数据表、数据字段必须加入中文注释
  4. 禁止使用存储过程、视图、触发器、Event
  5. 禁止存储大文件或者大照片
  6. 表必须有主键,例如自增主键
  7. 禁止使用外键,如果有外键完整性约束,需要应用程序控制
  8. 必须把字段定义为NOT NULL并且提供默认值

    * null 需要更多的存贮空间
    * null 只能使用is null或is not null 查询,而不能采用`=`、`in`、`<、`!=`、`not in`这些操作符号
  9. 禁止使用属性隐式转换

    * SELECT id FROM table WHERE string=13812345678
  10. 禁止使用ENUM,可使用TINYINT代替