# PHP at the Core: A Hacker's Guide to the Zend Engine

## Table of Contents

- The PHP 5 build system
- Extension structure
- Memory management
- Working with variables
- Writing functions
- Working with classes and objects
- Working with resources
- Working with INI settings
- Working with streams
- PDO Driver How-To
- Extension FAQs
- Zend Engine 2 API reference
- Zend Engine 1
- The future: PHP 6 and Zend Engine 3

The Zend API has evolved considerably over time, as PHP has become a more robust and widespread language. With the introduction of PHP 5 came the Zend Engine 2 (ZE2). ZE2 came with an almost entirely new Object-Oriented Programming (OOP) model, as well as improvements in most aspects of the API. PHP 6, which is still under active development at the time of this writing, introduces the Zend Engine 3 (ZE3), which brings full Unicode support to the language.

Warning

This documentation is still under heavy development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.

This section of the manual is devoted to ZE2. While PHP 4.3 is still in widespread use, the differences in how extensions are written in ZE1 are small; a short reference to them is given in an appendix to this section. ZE3's API may yet change significantly, and is covered in another appendix. It will be more fully documented when PHP 6 enters a beta testing stage.

The documentation in this section is current as of PHP 5.2.3, the most recent stable release at the time of this writing. Notable differences in the minor PHP 5 releases (5.0, 5.1, and 5.2) are given as appropriate.