9,读《PHP编程之道》

花了一些时间,把《PHP编程之道》看了一遍。
不得不说,它让我弄清了许多原本不知道、或原本一知半解的知识点。


9,读《PHP编程之道》_第1张图片
PHP编程之道.jpg

上图,把该文章中的知识点,梳理了一下。接下来,我也将我自己从中弄清的知识点,一一记录下来,并以自己的语言去解释它。

目录


给我的记录,加一个索引。

  • 编程范式
  • 依赖注入
  • 典型片段
  • 设计模式
  • 编码
  • 数据库扩展
  • 模板
  • 密码散列(加解密支持)
  • 数据过滤
  • 部署与虚拟化
  • 缓存

编程范式


9,读《PHP编程之道》_第2张图片
编程范式.png

面向对象编程不用多说,无非就是将各个功能抽象为实体,以类的形式保存,这些类有自己的属性、方法来完成特殊的一些逻辑,类是一个模板,而真正操作的则是对象。
函数式编程,这里是之前我对它的理解
元编程,本质是让程序更加灵活,由代码管理代码,代码生成代码等

依赖注入


这是我对它的理解

典型片段


点这里

设计模式


首先,说一个定义,设计模式是指在面向对象中用更好的方式解决问题的代码设计方式。设计模式在很多框架中都有出现,不管是tp还是laravel。下面说几个在php中较为常见的设计模式。

工厂模式:用一个工厂类,来实现统一创建其他对象,这可以利于解耦,这样就无须在到处写实例代码。
单例模式:确保整个请求周期内,只存在一个实例。
策略模式:将不同的算法(策略)封装成不同的实体,在使用时依赖注入以达到选用策略,当修改算法时,只需要修改策略。
前端控制器模式 :单入口,集中处理所有请求,统一载入依赖、服务,处理并返回。

数据库扩展


Mysql:和mssql、pgsql扩展一样,它们都是php原生提供的扩展,但它们很老。
Mysqli:对mysql扩展的升级版,有更多的功能
PDO:把连接不同数据库的操作使用封装起来,给开发者提供一组统一的接口。

模板


在MVC架构模式中,模板充当着View层,主要作用是为用户展现界面。web开发中,view层普遍存在大量的PHP代码用以输出。这时候,模板引擎就应运而生。它的出现可以解耦逻辑处理和视图层。
在MVC中延伸出来的MVP,实际上就是削减了Controller的作用,而提出proxy的概念,proxy层主要负责路由功能,而逻辑则大部分放在了Model之中处理。

这就是模板存在的原因

密码散列(加解密支持)


  • password_hash
  • password_verify

数据过滤


  • filter_var 过滤文本,并对其格式进行校验
  • filter_input 过滤文本,并对其格式进行校验
  • strip_tags 去除html标签
  • htmlentities 特殊字符分别进行转义
  • htmlspecialchars 特殊字符分别进行转义
  • escapeshellarg 过滤执行命令

缓存


  • 编译缓存
  • PHP在运行的时候,会先被解析成CPU可识别的中间码,而变动不大的代码每次执行都被重复解析,会浪费性能。这时候就可以用OPcache,它会将中间码保存起来。
  • 对象缓存
  • APCu
  • Memcached

你可能感兴趣的:(9,读《PHP编程之道》)