PHP compatibility

How much of PHP
compiles today

Counted symbol by symbol against PHP 8.5.10 (68 extensions, 2,169 functions) and generated from the compiler's own builtin registry, not maintained by hand.

Language

20/21

language features fully supported

Classes, enums, traits, closures, generators, fibers, match, references, namespaces. Partial: eval().

Default PHP build

71%

of PHP functions (644 / 901)

functions 71%
classes 63%
constants 33%

What a plain php-src ./configure compiles in: core, standard, date, pcre, spl, json, session, dom, and 20 more.

All 68 bundled extensions

45%

of PHP functions (983 / 2,169)

functions 45%
classes 52%
constants 37%

Everything in the reference PHP build, including opt-in extensions such as intl, gmp, sodium, and pgsql.

PHP extensions your framework requires

Complete Partial Missing

Laravel

13 required

4 complete · 6 partial · 3 missing

mbstring 100% pdo 100% session 100% xml 100% curl 98% hash 48% pcre 45% ctype 36% dom 15% openssl 6% fileinfo 0% filter 0% tokenizer 0%

Symfony

6 required

2 complete · 2 partial · 2 missing

iconv 100% session 100% pcre 45% ctype 36% simplexml 0% tokenizer 0%

WordPress

4 required

1 complete · 3 partial · 0 missing

json 100% mysqli 79% hash 48% pcre 45%

Percentages count each extension's functions and classes; an extension is complete only when its constants are all there too. Covering an extension is necessary, not sufficient: elephc compiles a static subset of PHP, so today frameworks keep running on PHP while their static modules compile to native libraries.

Frameworks

What Laravel, Symfony,
and WordPress expect

Each list is the project's published server requirements, matched against elephc's coverage of every extension on it.

Required

ctype 36% · Partial

functions 4/11

curl 98% · Partial

functions 34/35 · classes 6/6 · constants 689/689

dom 15% · Partial

functions 0/2 · classes 8/50 · constants 0/61

fileinfo 0% · Missing

functions 0/6 · classes 0/1 · constants 0/11

filter 0% · Missing

functions 0/7 · classes 0/2 · constants 0/56

hash 48% · Partial

functions 9/20 · classes 1/1 · constants 0/40

mbstring 100% · Complete

functions 65/65 · constants 9/9

openssl 6% · Partial

functions 4/64 · classes 0/3 · constants 3/70

pcre 45% · Partial

functions 5/11 · constants 7/19

pdo 100% · Complete

functions 1/1 · classes 4/4

session 100% · Complete

functions 23/23 · classes 4/4 · constants 3/3

tokenizer 0% · Missing

functions 0/2 · classes 0/1 · constants 0/154

xml 100% · Complete

functions 22/22 · classes 1/1 · constants 28/28

Required

ctype 36% · Partial

functions 4/11

iconv 100% · Complete

functions 10/10 · constants 4/4

pcre 45% · Partial

functions 5/11 · constants 7/19

session 100% · Complete

functions 23/23 · classes 4/4 · constants 3/3

simplexml 0% · Missing

functions 0/3 · classes 0/2

tokenizer 0% · Missing

functions 0/2 · classes 0/1 · constants 0/154

Required

json 100% · Complete

functions 5/5 · classes 2/2 · constants 29/29

hash 48% · Partial

functions 9/20 · classes 1/1 · constants 0/40

mysqli 79% · Partial

functions 84/106 · classes 4/6 · constants 52/110

pcre 45% · Partial

functions 5/11 · constants 7/19

Highly recommended

curl 98% · Partial

functions 34/35 · classes 6/6 · constants 689/689

dom 15% · Partial

functions 0/2 · classes 8/50 · constants 0/61

exif 100% · Complete

functions 4/4 · constants 1/1

fileinfo 0% · Missing

functions 0/6 · classes 0/1 · constants 0/11

intl 0% · Missing

functions 0/187 · classes 0/22 · constants 0/170

mbstring 100% · Complete

functions 65/65 · constants 9/9

openssl 6% · Partial

functions 4/64 · classes 0/3 · constants 3/70

xml 100% · Complete

functions 22/22 · classes 1/1 · constants 28/28

zip 0% · Missing

functions 0/10 · classes 0/1

Also listed: igbinary, imagick. These are PECL extensions outside php-src, so the PHP baseline cannot measure them.

Extensions

Every bundled extension,
grouped by how PHP ships it

Grouping follows the php-src 8.5 build configuration. The bar and percentage count functions and classes; the line below adds constants, and an extension is complete only when those are all there too.

Always built in

11 extensions

php-src offers no configure switch to leave these out, so every PHP installation has them.

core 100% · Complete

functions 62/62 · classes 40/40 · constants 89/89

date 100% · Partial

functions 48/48 · classes 15/15 · constants 3/17

hash 48% · Partial

functions 9/20 · classes 1/1 · constants 0/40

json 100% · Complete

functions 5/5 · classes 2/2 · constants 29/29

opcache 100% · Complete

functions 8/8

pcre 45% · Partial

functions 5/11 · constants 7/19

random 15% · Partial

functions 3/9 · classes 0/11 · constants 0/2

reflection 62% · Partial

classes 16/26

spl 99% · Partial

functions 15/15 · classes 54/55

standard 70% · Partial

functions 385/545 · classes 3/6 · constants 163/400

uri 0% · Missing

classes 0/9

Enabled by default

17 extensions

A plain ./configure compiles these in; they can be turned off with --disable-* or --without-*.

ctype 36% · Partial

functions 4/11

dom 15% · Partial

functions 0/2 · classes 8/50 · constants 0/61

fileinfo 0% · Missing

functions 0/6 · classes 0/1 · constants 0/11

filter 0% · Missing

functions 0/7 · classes 0/2 · constants 0/56

iconv 100% · Complete

functions 10/10 · constants 4/4

libxml 0% · Partial

functions 0/8 · classes 0/1 · constants 5/28

pdo 100% · Complete

functions 1/1 · classes 4/4

pdo_sqlite 100% · Complete

classes 1/1

phar 75% · Partial

classes 3/4

posix 5% · Partial

functions 2/41 · constants 0/43

session 100% · Complete

functions 23/23 · classes 4/4 · constants 3/3

simplexml 0% · Missing

functions 0/3 · classes 0/2

sqlite3 0% · Missing

classes 0/4 · constants 0/12

tokenizer 0% · Missing

functions 0/2 · classes 0/1 · constants 0/154

xml 100% · Complete

functions 22/22 · classes 1/1 · constants 28/28

xmlreader 0% · Missing

classes 0/1

xmlwriter 100% · Complete

functions 42/42 · classes 1/1

Bundled, opt-in

38 extensions

Shipped with php-src but compiled only when requested, as distributions commonly do for mbstring, curl, gd, intl, or mysqli.

bcmath 100% · Complete

functions 14/14 · classes 1/1

bz2 0% · Missing

functions 0/10

calendar 100% · Complete

functions 18/18 · constants 21/21

curl 98% · Partial

functions 34/35 · classes 6/6 · constants 689/689

dba 0% · Missing

functions 0/15 · classes 0/1

enchant 0% · Missing

functions 0/25 · classes 0/2 · constants 0/3

exif 100% · Complete

functions 4/4 · constants 1/1

ffi 0% · Missing

classes 0/5

ftp 0% · Missing

functions 0/36 · classes 0/1 · constants 0/11

gd 78% · Partial

functions 83/106 · classes 1/2 · constants 67/89

gettext 0% · Missing

functions 0/10

gmp 0% · Missing

functions 0/51 · classes 0/1 · constants 0/9

intl 0% · Missing

functions 0/187 · classes 0/22 · constants 0/170

ldap 0% · Missing

functions 0/55 · classes 0/3 · constants 0/92

mbstring 100% · Complete

functions 65/65 · constants 9/9

mysqli 79% · Partial

functions 84/106 · classes 4/6 · constants 52/110

odbc 0% · Missing

functions 0/48 · classes 0/2 · constants 0/57

openssl 6% · Partial

functions 4/64 · classes 0/3 · constants 3/70

pcntl 100% · Partial

functions 28/28 · classes 1/1 · constants 0/129

pdo_dblib 100% · Complete

classes 1/1

pdo_firebird 100% · Complete

classes 1/1

pdo_mysql 100% · Complete

classes 1/1

pdo_odbc 100% · Partial

classes 1/1 · constants 0/1

pdo_pgsql 100% · Complete

classes 1/1

pgsql 0% · Missing

functions 0/123 · classes 0/3 · constants 0/76

readline 8% · Partial

functions 1/13 · constants 0/1

shmop 0% · Missing

functions 0/6 · classes 0/1

snmp 0% · Missing

functions 0/24 · classes 0/2 · constants 0/21

soap 0% · Missing

functions 0/2 · classes 0/8 · constants 0/81

sockets 0% · Missing

functions 0/37 · classes 0/2 · constants 0/243

sodium 0% · Missing

functions 0/104 · classes 0/1 · constants 0/94

sysvmsg 0% · Missing

functions 0/7 · classes 0/1 · constants 0/5

sysvsem 0% · Missing

functions 0/4 · classes 0/1

sysvshm 0% · Missing

functions 0/7 · classes 0/1

tidy 0% · Missing

functions 0/24 · classes 0/2 · constants 0/161

xsl 0% · Missing

classes 0/1 · constants 0/14

zip 0% · Missing

functions 0/10 · classes 0/1

zlib 13% · Partial

functions 4/30 · classes 0/2 · constants 0/27

Language

Language features

Classes & objects Supported
Traits Supported
Enums Supported
Anonymous classes Supported
Property hooks Supported
Attributes Supported
Magic methods Supported
Generators Supported
Fibers Supported
match expressions Supported
References (&) Supported
Namespaces Supported
include / require Supported
eval() Partial

Methodology

How it is counted

  • The baseline is a PHP 8.5.10 CLI snapshot taken on 2026-09-04: 68 extensions, 2,169 functions, 329 classes, and 3,180 constants.
  • A symbol counts when a compiled program can use it, through any compile-time route. Symbols that exist only inside the experimental eval() interpreter do not count.
  • Counting measures the available surface, not behavioral parity: some functions have documented differences from PHP, listed on each extension's documentation page.
  • The built-in function count on the homepage also includes elephc-only builtins (pointers, buffers) and PECL functions such as cairo; the coverage here counts only symbols PHP itself exposes.
  • Everything on this page is derived from the generated coverage table, which lists eval() coverage, PECL extras, and known limitations.