Category
bootstrap | stdlib
Problem
#3722 tracks full Random\Randomizer + Random\Engine\* parity. Workers cannot land handlers incrementally while class_exists('Random\\Randomizer') is false and extension_loaded('random') is false — same blocker pattern as #7033 (igbinary), #7032 (msgpack), #6837 (ctype).
Verified 2026-06-06:
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php bin/vm.php -r "
var_export(class_exists(\"Random\\\\Randomizer\")); echo PHP_EOL;
var_export(extension_loaded(\"random\")); echo PHP_EOL;
"'
# bool(false) bool(false)
random_bytes() / random_int() exist in ext/standard/ but the ext/random OOP surface is absent.
php-src reference
Repro
<?php
echo class_exists('Random\\Randomizer') ? 'yes' : 'no', "\n";
echo extension_loaded('random') ? 'yes' : 'no', "\n";
| Runtime |
Random\Randomizer |
extension_loaded('random') |
| Zend PHP 8.2+ |
yes |
yes |
bin/vm.php |
no |
no |
Scope (phase 0 only)
| Path |
Work |
ext/random/Module.php (new) |
Register module + class entries for Randomizer, Random\Engine\Mt19937, exception stubs |
| Stub methods |
call() throws consistent Error until #3722 implements behavior |
| Runtime load |
Wire module in bootstrap spine like ext/filter |
| Tests |
test/unit/RandomModuleSkeletonTest.php |
| Matrix |
script/capability-matrix.php rows (VM yes, JIT deferred) |
PHP-in-PHP: classes + handlers in ext/random/*.php; no C builtins.
Done when
Verification
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter RandomModuleSkeleton'
Related
Category
bootstrap|stdlibProblem
#3722 tracks full
Random\Randomizer+Random\Engine\*parity. Workers cannot land handlers incrementally whileclass_exists('Random\\Randomizer')is false andextension_loaded('random')is false — same blocker pattern as #7033 (igbinary), #7032 (msgpack), #6837 (ctype).Verified 2026-06-06:
random_bytes()/random_int()exist inext/standard/but the ext/random OOP surface is absent.php-src reference
ext/random/random.c—PHP_MINIT, module registrationext/random/randomizer.stub.php— class stubsRepro
Random\Randomizerextension_loaded('random')bin/vm.phpScope (phase 0 only)
ext/random/Module.php(new)Randomizer,Random\Engine\Mt19937, exception stubscall()throws consistentErroruntil #3722 implements behaviorext/filtertest/unit/RandomModuleSkeletonTest.phpscript/capability-matrix.phprows (VM yes, JIT deferred)PHP-in-PHP: classes + handlers in
ext/random/*.php; no C builtins.Done when
class_exists('Random\\Randomizer')true on VMextension_loaded('random')true./script/ci-fast.sh --filter RandomModuleSkeletongreenphp script/bootstrap-inventory.php --checkunchanged or improvedinternal_*shimsVerification
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter RandomModuleSkeleton'Related