Codex loosely only mentions PHP version in server requirements, however PHP can be configured in pretty wide range of excluding/including different parts.
What are extensions/libraries that:
- are required for WP to work at all? MySQL…
- are required for specific functions? GD ?…
- are preferred for best operation of specific functions? cURL…
- are commonly used by plugins? Zip…
I gave this some more thought and given size of WP code base (including bundled libraries) it doesn’t seem very realistic to compile such list by hand (and repeat it for every new version – meh).
I looked up appropriate static code analysis tool – PHP_CompatInfo and after some tinkering generated following report of extensions used by core (version scanned 3.3.1):
-
cURL – 127 uses (requires libcurl)
- HTTP API (class
WP_Http_curl
)
url_is_accessable_via_ssl()
-
SimplePie (overridden with class WP_SimplePie_File
)
-
GoogleSpell (from TinyMCE package, is not used?)
-
Date/Time – 367 uses
-
DOM – 6 uses (requires libxml)
iis7_rewrite_rule_exists()
iis7_delete_rewrite_rule()
iis7_add_rewrite_rule()
saveDomDocument()
-
POSIX Regex – 23 uses
-
Filter – 2 uses
- class
PHPMailer->ValidateAddress()
(optional)
-
FTP – 72 uses
- class
ftp_base
- class
ftp
(pure and sockets versions)
- class
WP_Filesystem_FTPext
- class
WP_Filesystem_ftpsockets
-
GD – 56 uses
wp-admin\includes\image-edit.php
wp-admin\includes\image.php
wp-includes\media.php
-
Hash – 6 uses
-
wp-includes\pluggable.php
multiple uses (optional – fallback in wp-includes\compat.php
)
-
iconv – 5 uses
- class
SimplePie
(optional)
-
wp_check_invalid_utf8()
(optional)
-
wp-mail.php
(optional)
-
JSON – 20 uses
- optional, fallbacks in
wp-includes/compat.php
-
libxml – 4 uses
- class
WP_oEmbed->_parse_xml()
(optional)
- SimplePie
-
Multibyte String – 29 uses
- some fallback in
wp-includes/compat.php
-
MySQL – 60 uses
- class
wpdb
-
class SimplePie_Cache
(overridden with class WP_Feed_Cache
)
-
OpenSSL – 4 uses
-
PCRE – 743 uses
-
SimpleXML – 1 uses
- class
WP_oEmbed
(seems optional)
-
Sockets – 64 uses
- class
ftp
(sockets
implementation)
-
SPL – 3 uses
-
Tokenizer – 3 uses
-
wp_doc_link_parse()
(optional)
-
XML Parser – 89 uses
-
XMLReader – 1 uses
- SimplePie (seems optional)
-
Zlib – 30 uses