One version per process
Andrew Nesbitt explains the size of npm dependency trees with the resolver. In PHP, the resolver is ultimately the engine itself: one name, one definition, one version per process. That is why PHP trees stay small, and why PHPUnit's PHAR has to rename its dependencies.