Chapter 14. Extending PHP
This chapter shows you how to write C language extensions to PHP. Although most functionality can be written in the PHP language, sometimes you need the extra speed and control you get from the C API. C code runs an order of magnitude faster than most interpreted script code, and it is also the mechanism for creating the thin middle layer between PHP and any third-party C library.
For example, to be able to talk to the MySQL database server, PHP
needs to implement the MySQL socket protocol. It would be a lot of
work to figure out this protocol and talk to MySQL directly using
fsockopen( )
and fputs( )
from
a PHP script. Instead, the same goal can be accomplished with a thin
layer of functions written in C that translate
MySQL’s C API, implemented in the
libmysqlclient.so
library included in MySQL,
into PHP language-level function calls. This thin layer of functions
is known as a PHP extension. PHP extensions do
not always have to be a layer between PHP and some third-party
library, however. An extension can instead completely implement some
feature directly (for example, the FTP extension).
Before we get into the details of writing extensions, a note of caution. If you are just learning PHP and do not have any sort of C programming background, you should probably skip this chapter. Extension writing is an advanced topic, and it is not for the faint of heart.
Architectural Overview
There are two kinds of extensions that you can write: PHP extensions and ...
Get Programming PHP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.