8.1. SETTING UP THE BUILD ENVIRONMENT8.2. CREATING AN EXTENSION WITH EXT_SKEL8.2.1. Creating and Compiling Skeleton Code8.2.2. Using a Function Definitions File8.2.3. Generating Help Files8.3. CREATING AN EXTENSION WITH CODEGEN_PECL8.3.1. Creating the Basic XML File8.3.2. Defining Functions8.3.2.1. Defining a Public Function8.3.2.2. Defining Internal Functions8.3.3. Defining Constants, INI Directives, and Globals8.3.3.1. Defining Constants8.3.3.2. Defining INI Directives and Globals8.3.4. Defining Objects, Methods, and Properties8.3.4.1. Defining Methods8.3.4.2. Defining Properties8.3.4.3. An Example Class8.3.4.4. Interfaces8.4. VARIABLES IN PHP EXTENSIONS8.4.1. Setting and Testing zvals8.4.2. Reading and Comparing zvals8.4.3. Dealing with Strings as zvals8.4.3.1. Manipulating and Comparing Strings8.4.3.2. Converting to Strings8.4.4. Advanced Memory Management8.5. USING FUNCTIONS IN EXTENSIONS8.5.1. Basic Definitions8.5.2. Using Arguments8.5.3. Defining Argument Information8.5.4. Returning Values8.5.5. Built-In Functions8.5.6. Creating and Consuming PHP API Functions8.5.6.1. Consuming PHP APIs8.5.6.2. Providing an API8.5.7. More Notes and Creating Helper Functions8.6. INPUT/OUTPUT8.6.1. Standard Out8.6.2. Files and Streams8.6.2.1. Basic Streams8.6.2.2. Using Context8.6.3. Networking8.6.3.1. Building a Client8.6.3.2. Building a Server8.6.4. Errors and Warnings8.7. ARRAYS AND HASH TABLES8.7.1. Building and Accessing Arrays8.7.2. Accessing and Modifying Hash Tables8.8. OBJECTS AND INTERFACES8.8.1. Creating a Class8.8.1.1. Class Definition, Inheritance, and Namespaces8.8.1.2. Using Methods8.8.1.3. Using Properties8.8.1.4. Using Class Constants8.8.1.5. Creating an Interface8.8.2. Interacting with Objects8.8.2.1. Identifying Objects8.8.2.2. Calling Methods8.9. CONSTANTS, INI DIRECTIVES, AND GLOBALS8.9.1. Constants8.9.2. Globals and INI Directives8.9.2.1. Defining Globals and INI Directives8.9.2.2. Accessing Globals8.9.2.3. True Globals and Thread Safety8.10. DESCRIBING AN EXTENSION8.10.1. Printing a Description8.10.2. Building a Table8.10.3. Specifying a Logo8.11. SUMMARY