Chapter 15. Packages and Extensions

PHP is a high-level language that uses dynamic typing and memory management to make software development easier for end users. Unfortunately, computers are not very good at handling high-level concepts, so any high-level system must itself be built atop lower-level building blocks. In the case of PHP, the entire system is written in and built atop C.

Since PHP is open source, you can download the entire source code for the language directly from GitHub. Then you can build the language from source on your own system, make changes to it, or write your own native (C-level) extensions.

In any environment, you’ll need various other packages available in order to build PHP from source. On Ubuntu Linux, these are the packages:

pkg-config

A Linux package for returning information about installed libraries

build-essential

A meta-package encompassing the GNU debugger, g++ compiler, and other tools for working with C/C++ projects

autoconf

Package of macros to produce shell scripts that configure code packages

bison

A general-purpose parser generator

re2c

A regular expression compiler and open source lexer for C and C++

libxml2-dev

The C-level development headers required for XML processing

libsqlite3-dev

The C-level development headers for SQLite and related bindings

You can install all of them with the following apt command:

$ sudo apt install -y pkg-config build-essential autoconf bison re2c \
                      libxml2-dev libsqlite3-dev

Once dependencies ...

Get PHP Cookbook 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.