书评 -- PHP7 底层设计与源码实现

  • php
  • internal

posted on 19 Jan 2021 in series book_review

总体来说, 这本书算是国内少有的关于 PHP 内核的参考资料.

在此之前, 也有一些不错的资料可供参考:

  • php.net 官网

    缺点是针对 PHP5.

  • phpinternalsbook

    很不错的网站, 也包含了 PHP7. 感觉这本书应该也借鉴了不少其中的内容, 包括书中的讲述逻辑也是. 不过这个网站中的内容还没有更新全. 看书时, 可用来交叉参考一下. 应该已经有了中文翻译版的了, 大家可以自己搜搜.

上面两个和书的讲述重点不一样, 侧重面向扩展的开发者, 着重讲扩展开发时注意的东西. 而书更侧重具体实现.

读这本书, 最好具有良好的 C 功底, 一些 Linux 开发经验 (常用的 api 得熟悉), 以及操作系统的基础知识. 另外 Autoconf, Gcc 等工具的经验也会让你读起来更轻松. 否则就得像我一样, 手边常备着一本 <现代 C=""> 和 边看边补了. 这样看的话, 会十分艰难, 不过也的确能复习一遍 C.

这本书比较好的特色是:

  • 配合 PHP5 的实现来讲, 更能明白 PHP7 设计改进的意义在哪儿.
  • 配了大量的图解.
  • 介绍了很多阅读代码的必备知识, 比如学习 fpm 扩展时, 先讲了 fastcgi 协议. 介绍词法语法分析前, 先讲了一下自动机和 BNF 范式等等.
  • 顺带也补足了一下 PHP 的语法, 配置等等基础知识.

而缺点也是显而易见:

  • 有几章不是很走心, 基本上就是代码罗列和一笔带过.
  • 印刷错误很多, 一定要得对着勘误表看. 我自己总结的大概就 30 多处了. 后来懒了总结了.
  • 重点不是很突出, 读起来也很枯燥. 基本就是教科书的风格.

总之, 这本书算是很用心了, 读完还是能学到很多的, 包括怎么读源码, 实现中常用的技巧, 优化思路等等. 值得参考一下.