“扩展 PHP”说起来容易做起来难。PHP 现在已经发展成了一个具有数兆字节源代码的非常成熟的系统。要想深入这样的一个系统,有很多东西需要学习和考虑。在写这一章节的时候,我们最终决定采用“边学边做”的方式。这也许并不是最科学和专业的方式,但却应该是最有趣和最有效的一种方式。在下面的小节里,你首先会非常快速的学习到如何写一个虽然很基础但却能立即运行的扩展,然后将会学习到有关 Zend API 的高级功能。另外一个选择就是将其作为一个整体,一次性的讲述所有的这些操作、设计、技巧和诀窍等,并且可以让我们在实际动手前就可以得到一副完整的愿景。这看起来似乎是一个更好的方法,也没有死角,但它却枯燥无味、费时费力,很容易让人感到气馁。这就是我们为什么要采用非常直接的讲法的原因。

注意,尽管这一章会尽可能多讲述一些关于 PHP 内部工作机制的知识,但要想真的给出一份在任何时间任何情况下的PHP 扩展指南,那简直是不可能的。PHP 是如此庞大和复杂,以致于只有你亲自动手实践一下才有可能真正理解它的内部工作机制,因此我们强烈推荐你随时参考它的源代码来进行工作。

Zend 是什么? PHP 又是什么?

Zend 指的是语言引擎,PHP 指的是我们从外面看到的一套完整的系统。这听起来有点糊涂,但其实并不复杂(见图3-1 PHP 内部结构图)。为了实现一个 WEB 脚本的解释器,你需要完成以下三个部分的工作:

1、 解释器部分,负责对输入代码的分析、翻译和执行;
2、 功能性部分,负责具体实现语言的各种功能(比如它的函数等等);
3、 接口部分,负责同 WEB 服务器的会话等功能。

Zend 包括了第一部分的全部和第二部分的局部,PHP 包括了第二部分的局部和第三部分的全部。他们合起来称之为 PHP 包。Zend 构成了语言的核心,同时也包含了一些最基本的 PHP 预定义函数的实现。PHP 则包含了所有创造出语言本身各种显著特性的模块。
 

图3-1   PHP 内部结构图

下面将要讨论PHP 允许在哪里扩展以及如何扩展。

转载于:https://www.cnblogs.com/daiye/archive/2010/10/20/1856587.html

深入php内核一(概述)相关推荐

  1. Linux内核源代码分析-第三章 内核体系结构概述-1

    第3章 内核体系结构概述 本章从较高层次上对内核进行说明.从顺序上来说,本章首先介绍内核设计目标,接下来 介绍内核体系结构,最后介绍内核源程序目录结构. 3.1 内核设计目标 Linux 的内核展现出 ...

  2. 内核管理 之 内核管理概述

    作者:北南南北 来自:LinuxSir.Org 摘要:本文讲述与内核操作有关的基础知识:比如编译内核,装载.移除内核模块,查看模块信息等:本文涉及相关的命令有modprobe.insmod.depmo ...

  3. netfilter内核实现概述

    netfilter内核实现概述 一.前言 netfilter是Linux内核中网络防火墙的基础,无论是基于xtables的iptables,还是conntrack.nftables,其底层都是基于ne ...

  4. Linux内核源代码分析-第三章 内核体系结构概述-3

    3.5 设计和实现的关系 接下来的部分将介绍一些内核设计和实现之间的关系.本部分最重要的内容是对于内核源 程序目录结构的概述,这一点随后就会提到.本章最后以实现中体系结构无关代码和体系 结构相关代码的 ...

  5. android 内核裁剪概述,Android内核的编译与裁剪

    概述 如果我们仅仅对Android内核感兴趣,我们可以选择合适的Android内核下载并编译. 可供选择的内核源码有很多版本: $ git clone https://android.googleso ...

  6. 2 Linux内核目录概述

    文章目录 Linux目录简介 1 arch 2 block 3 crypto 4 Documentation 5 drivers 6 firmware 7 fs 8 include 9 init 10 ...

  7. Linux内核源代码概述

    Linux内核源代码非常庞大,截止到2015年据统计代码总量就已经超过1500万行(LOC,Line of Code),看代码总量非常吓人,具体看这1500万行代码的大致分布情况如下图. 显然占比最大 ...

  8. linux 内核信号处理概述(send_signal)

    惯例分析函数之前先看数据构造 信号相关数据结构 #define _NSIG       64 #define _NSIG_BPW   32 #define _NSIG_WORDS (_NSIG / _ ...

  9. Linux内核抢占实现机制分析【转】

    Linux内核抢占实现机制分析 转自:http://blog.chinaunix.net/uid-24227137-id-3050754.html [摘要]本文详解了Linux内核抢占实现机制.首先介 ...

  10. u-boot分析之内核启动(五)

    目录 u-boot(五)内核启动 概述 分区空间 内核文件格式 内核复制跳转 内核启动 机器ID 启动参数 (起始tag)setup_start_tag 内存设置 根文件系统,启动程序,串口设备 (结 ...

最新文章

  1. NXP I.MX6ULL 交叉编译工具链下载地址?
  2. 【Makefile由浅入深完全学习记录8】条件判断语句
  3. 深度访谈Amazon员工与HR:华裔因pip跳楼背后(图)
  4. 关于用Java写的贪吃蛇游戏的一些感想
  5. 2018最新电大网考计算机,2018年最新电大网考计算机应用基础统考试题.doc
  6. Python机器学习的一些文档
  7. discuz内置代码
  8. Android半透明提示效果的实现
  9. Intellij idea破解2017
  10. 为什么是“止于至善”?
  11. Apache Rewrite详细配置与使用说明
  12. 叶俊:领袖需要思考的问题
  13. 软件测试 - 功能测试Ⅱ
  14. 阿里云图像识别Java调用示例参考
  15. win10edge启用html5,Win 10 Edge浏览器极速运行的设置方法
  16. C++重载相等运算符operator==的两种方式
  17. 开发实训10---Android---注册登录功能实现1
  18. linux查看IP地址、网络端口的命令
  19. MIPCMS如何用火车头采集自定义字段?
  20. Kaggle比赛模型融合方法

热门文章

  1. 谱聚类算法(Spectral Clustering)优化与扩展
  2. LeetCode:3. Longest Substring Without Repeating Characters
  3. 配置远程服务器jupyter
  4. iOS----------iPhone导出手机所有短信
  5. Linux系统编程——基于文件描述符的文件操作(1)
  6. hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
  7. C++基础算法学习——完美立方
  8. IOS开发基础知识--碎片39
  9. OC:数组排序、时间格式化字符串
  10. 17.C#类型判断和重载决策(九章9.4)