PHP is a very widely used language currently. It can be seen in various large, medium and small websites from foreign Facebook and Twitter to domestic Taobao, Tencent, Baidu and all kinds of large, medium and small websites on the Internet. . It should be said that the success of PHP relies largely on its open extension API mechanism and rich extension components (PHP Extension). It is these extension components that allow PHP to operate from various database operations to XML, JSON, encryption, file processing, It is omnipotent in fields such as graphics processing and Socket. Sometimes developers may need to develop their own PHP extensions. The current extension mechanism of PHP5 is based on Zend API. Zend API provides rich interfaces and macro definitions, plus some practical tools, making it not particularly difficult to develop PHP extensions. . This article will introduce basic knowledge about the development of PHP extension components, and demonstrate the basic process of developing PHP extensions through an example.
The development process of PHP extension components is different in Unix and Windows environments, but they are basically interoperable. This article will be based on the Unix environment (specifically using Linux). Reading this article requires a simple understanding of some basic knowledge of the Unix environment, PHP and C language. As long as you have a simple understanding, I will try not to cover too specific operating system and language features, and explain them where necessary to facilitate readers' reading.
The specific development environment of this article is Ubuntu 10.04 + PHP 5.3.3.
Download PHP source code
To develop PHP extensions, the first step is to download the PHP source code, because it contains the tools needed to develop extensions. What I downloaded is the latest version of PHP 5.3.3, in the format of tar.bz2 compressed package. The download address is: http://cn.php.net/get/php-5.3.3.tar.bz2/from/a/mirror.
After downloading, move the source code to the appropriate directory and unzip it. The decompression command is:
<ol class="dp-xml"><li class="alt"><span><span>tar -jxvf 源码包名称 </span></span></li></ol>
If you downloaded the tar.gz compressed package, the decompression command is
<ol class="dp-xml"><li class="alt"><span><span>tar -zxvf 源码包名称 </span></span></li></ol>
After decompression, there is an ext directory in the source code directory, here It is a directory related to PHP extensions. After entering the directory and viewing it with ls, you can see many existing extensions. The picture below is the result of viewing it in my environment: