Skip to content
Alex Kiesel edited this page May 23, 2013 · 6 revisions

PHP Extensions

The [http://de3.php.net/ PHP language] provides tons of functions to work with databases, xml, classes, networking and much more. These functions are organized into so-called extensions, which are basically shared libraries (.dll on Windows, .so on Un*x, ...). Certain extensions are statically compiled into PHP (for example, the standard extension which provides string and array functions), others need to be loaded in order for their functionality to be available.

The XP framework depends on some of these extensions being available.

Core dependencies

The XP framework's core depends on the following extensions being loaded:

  • standard - Without which PHP wouldn't work anyways
  • pcre - Perl compatible regular expressions
  • tokenizer - Tokenizes strings
  • reflection - Reflection API
  • ctype - Character type functions
  • iconv - Encoding / decoding
  • date - Date and time functionality

XML

One can hardly get around XML nowadays, and PHP bundles four extensions based on the Gnome XML libraries. We need all four of them enabled:

  • dom - Document Object Model
  • xsl - Extensible Stylesheets
  • xml - XML parsing
  • libxml - XML library internals

Networking

Although basic networking operations will work with stock PHP, for more advanced usecases the following extensions need to be available.

  • sockets - Socket functions, Remoting, Server APIs
  • ftp - File transfer protocol implementation
  • openssl - For SSL sockets / HTTPS transport

Imaging

The GD library provides functionality to work with images, dynamically creating them, modifying, drawing, and meta data extraction functionality.

  • gd - Graphics backend, IPTC parsing
  • exif - EXIF support (Note: On Windows this extension also requires the mbstring extension] enabled!)

Databases

The database access APIs for the various database systems require the respective drivers. See rdbms.

The web

To create websites, besides requiring a CGI PHP or any of the other so- called "SAPIs" (Server APIs), for example: mod_php for Apache, we also depend on the [php://session session] extension being available.

Parallel processing

This requires the pcntl and posix extensions which are unfortunately only available on Un*x systems.