北漂IT民工 的博客

Programming PHP的PHP扩展一章节翻译(2)

结构总览


你可以写的PHP扩展有两种:PHP扩展和Zend扩展。这里我们主要介绍PHP扩展。Zend扩展是一个更加底层的扩展,并在某种程度上修改了语言的核 心。Opcode缓存系统象APC和Zend的Accelerator是Zend扩展。PHP扩展只是向PHP脚本提供函数或者对象。 MySQL,Oracle, LDAP, SNMP, EXIF, GB,以及Ming都是PHP的扩展的例子。


14-1图展示了一个包含PHP的WEB服务器的图表。WEB服务器处于最上层处理来自HTTP的请求,然后将请求通过服务抽象API(SAPI)传递给 PHP。“mysql”,”ldap”和”snmp”这些小方块表示可以装入的PHP扩展,这也是本章你将学习的怎样去建立的扩展。TSRM是线程安全资源管理层,它用于帮助简化线程安全编程。PHP核心包含了一些不可定制的PHP特性,同时PHP的API包含了PHP特定的API函数,这些函数在核心与PHP扩展里都会被用到。最后一层是Zend引擎,它通过一个两段机制运行脚本,首先它产生一个操作码的集合,然后再执行它们。一个PHP扩展使用Zend扩展API来接收函数调用的参数和返回函数。


英汉对照:


Architectural Overview

结构总览


There are two kinds of extensions that you can write: PHP extensions and Zend extensions. We will focus on PHP extensions here. Zend extensions are lower-level extensions that somehow modify the very core of the language. Opcode cache systems such as APC and Zend’s Accelerator are Zend extensions. PHP extensions simply provide functions or objects to PHP scripts. MySQL, Oracle, LDAP, SNMP, EXIF, GD, and Ming are all examples of PHP extensions.


你可以写的PHP扩展有两种:PHP扩展和Zend扩展。这里我们主要介绍PHP扩展。Zend扩展是一个更加底层的扩展,并在某种程度上修改了语言的核心。Opcode缓存系统象APC和Zend的Accelerator是Zend扩展。PHP扩展只是向PHP脚本提供函数或者对象。MySQL,Oracle, LDAP, SNMP, EXIF, GB,以及Ming都是PHP的扩展的例子。



Figure 14-1 shows a diagram of a web server with PHP linked in. The web server layer at the top handles incoming HTTP requests and passes them to PHP via the Server Abstraction API (SAPI). The “mysql,” “ldap,” and “snmp” boxes represent loadable PHP extensions, the kind you’ll learn how to build in this chapter. TSRM is the Thread Safe Resource Manager layer, which helps simplify thread-safe programming. The PHP core contains many of the non-optional core features of PHP, and the PHP API contains the PHP-specific API functions used by both the core and the PHP extensions. Finally, there is the Zend Engine, which runs scripts through a two-pass mechanism, first generating a set of opcodes and then executing them. A PHP extension uses the Zend extension API to receive arguments from function calls and return values back.


14-1图展示了一个包含PHP的WEB服务器的图表。WEB服务器处于最上层处理来自HTTP的请求,然后将请求通过服务抽象API(SAPI)传递结PHP。这些“mysql”,”ldap”和”snmp”这些小方块表示可以装入的PHP扩展,这也是本章你将会学到的怎样建立的扩展。TSRM是线程安全资源管理层,它用于帮助简化线程安全编程。PHP核心包含了一些不可定制的PHP特性,同时PHP的API包含了PHP特定的API函数,这些函数在核心与PHP扩展里都会被用到。最后一层是Zend引擎,它通过一个两段机制运行脚本,首先它产生一个操作码的集合,然后再执行它们。一个PHP扩展使用Zend扩展API来接收函数调用的参数和返回函数。

Figure 14-1. Structure of a PHP-linked web server