
What happens when PHP runs your code
A request walks from the SAPI to the Zend VM — lexing, compilation to opcodes, the OPcache lookup that skips both, and execution.
A technical publication about PHP
A technical publication about PHP internals, performance, architecture, and production behavior — measurements over assumptions, trade-offs over rules.
readPlain:0000 CV0($o) = RECV 10001 T1 = FETCH_OBJ_R CV0($o) string("v")0002 RETURN T1readBacked:0000 CV0($o) = RECV 10001 T1 = FETCH_OBJ_R CV0($o) string("v")0002 RETURN T1readVirtual:0000 CV0($o) = RECV 10001 T1 = FETCH_OBJ_R CV0($o) string("v")0002 RETURN T1
A request walks from the SAPI to the Zend VM — lexing, compilation to opcodes, the OPcache lookup that skips both, and execution.
Every post belongs to one of them. Each subject has its own archive, newest first.
The engine: compilation, the Zend VM, memory layout, and the data structures behind the values you pass around.
Measurement: profiling, benchmark method, and optimization that arrives with a number attached.
How an application is put together: boundaries, dependency injection, layering, and what a framework design costs later.
Production behavior: PHP-FPM pools, worker processes, long-running runtimes, and where memory goes over a day.
The tooling and standards around the language: Composer, static analysis, and the PSRs.
Series
Each series builds one argument across several posts. Start at part one; every part links to the next.
Read in orderWhat a PHP value is made of, what it costs to hold one, and when the engine decides to copy it.
How to get opcodes out of PHP, what the dispatch loop does with them, and what the optimizer changed before either happened.
What a profiler can and cannot see, how to read what it produces, and where a request's time actually accumulates.