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 classWP_SimplePie_File
) -
GoogleSpell(from TinyMCE package, is not used?)
- HTTP API (class
-
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)
- class
-
FTP – 72 uses
- class
ftp_base
- class
ftp
(pure and sockets versions) - class
WP_Filesystem_FTPext
- class
WP_Filesystem_ftpsockets
- class
-
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 inwp-includes\compat.php
)
-
-
iconv – 5 uses
- class
SimplePie
(optional) -
wp_check_invalid_utf8()
(optional) -
wp-mail.php
(optional)
- class
-
JSON – 20 uses
- optional, fallbacks in
wp-includes/compat.php
- optional, fallbacks in
-
libxml – 4 uses
- class
WP_oEmbed->_parse_xml()
(optional) - SimplePie
- class
-
Multibyte String – 29 uses
- some fallback in
wp-includes/compat.php
- some fallback in
-
MySQL – 60 uses
- class
wpdb
-
class(overridden with classSimplePie_Cache
WP_Feed_Cache
)
- class
-
OpenSSL – 4 uses
- class
PHPMailer
- class
-
PCRE – 743 uses
-
SimpleXML – 1 uses
- class
WP_oEmbed
(seems optional)
- class
-
Sockets – 64 uses
- class
ftp
(sockets
implementation)
- class
-
SPL – 3 uses
-
Tokenizer – 3 uses
-
wp_doc_link_parse()
(optional)
-
-
XML Parser – 89 uses
-
XMLReader – 1 uses
- SimplePie (seems optional)
-
Zlib – 30 uses