PHP相关知识分享存档
以下是前几天和公司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
- 数据结构
- 迭代器
- 接口
- SPL 函数
- 各种类及接口
Composer 包管理器
官网:https://getcomposer.org/
中文网:http://www.phpcomposer.com/
包仓库:https://packagist.org/
包推荐:https://https://github.com/baiy/composer-package/
PHP新特征
- 异常
- 命名空间
- 闭包和匿名函数
- 生成器
最佳实践
- PHP升级文档
- 约定大于配置
- 自动加载
- PHP7
MYSQL规范
- 必须使用InnoDB存储引擎
- 必须使用UTF8(utf8mb4)字符集
- 数据表、数据字段必须加入中文注释
- 禁止使用存储过程、视图、触发器、Event
- 禁止存储大文件或者大照片
- 表必须有主键,例如自增主键
- 禁止使用外键,如果有外键完整性约束,需要应用程序控制
必须把字段定义为NOT NULL并且提供默认值
* null 需要更多的存贮空间 * null 只能使用is null或is not null 查询,而不能采用`=`、`in`、`<、`!=`、`not in`这些操作符号
禁止使用属性隐式转换
* SELECT id FROM table WHERE string=13812345678
- 禁止使用ENUM,可使用TINYINT代替