Category
stdlib · php-src-strict · ext/ldap Oracle wallet · pillar 4
Problem
Closed as implemented in #20638, but with ldap advertised (PHP_COMPILER_ENABLE_LDAP=1, extension_loaded('ldap') === true), ldap_connect_wallet() is still absent from the function table. Implementation exists at ext/ldap/ldap_connect_wallet.php and Module.php adds it only when LdapExtensionPolicy::advertisesWalletConnect() — which requires VmLdapNative::walletAvailable() and is false in the pinned dev container.
| Repro |
Zend 8.3+ (ldap + Oracle wallet build) |
VM (2026-08-06) |
extension_loaded('ldap') |
true |
true |
function_exists('ldap_exop_sync') |
true |
true |
function_exists('ldap_connect_wallet') |
true |
false |
php-src reference
PHP implementation target
ext/ldap/LdapExtensionPolicy.php — advertisesWalletConnect() + GSLC_SSL_* constants when wallet libs reachable (match php-src HAVE_ORALDAP gate, not phantom on default profile)
ext/ldap/ldap_connect_wallet.php — VM execute path already present; add JIT lowering (currently throws #20638)
ext/ldap/Module.php — register wallet fn + constants with the policy gate
Repro
./script/docker-exec.sh -- bash -lc \
'PHP_COMPILER_ENABLE_LDAP=1 PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/maintainer_gap_ldap_connect_wallet_missing.php'
# expect: wallet_fn=1 when Oracle wallet LDAP is available
# actual (no wallet libs): wallet_fn=0 while ext/ldap loaded
Done when
Gate snapshot when filing (2026-08-06)
- inventory OK 7119/7119;
user_release_ready: yes
Category
stdlib· php-src-strict · ext/ldap Oracle wallet · pillar 4Problem
Closed as implemented in #20638, but with ldap advertised (
PHP_COMPILER_ENABLE_LDAP=1,extension_loaded('ldap') === true),ldap_connect_wallet()is still absent from the function table. Implementation exists atext/ldap/ldap_connect_wallet.phpandModule.phpadds it only whenLdapExtensionPolicy::advertisesWalletConnect()— which requiresVmLdapNative::walletAvailable()and is false in the pinned dev container.extension_loaded('ldap')function_exists('ldap_exop_sync')function_exists('ldap_connect_wallet')php-src reference
ext/ldap/ldap.stub.php—ldap_connect_wallet(?string $uri, string $wallet, string $password, int $auth_mode = GSLC_SSL_NO_AUTH)ext/ldap/ldap.c—PHP_FUNCTION(ldap_connect_wallet)behindHAVE_ORALDAPPHP implementation target
ext/ldap/LdapExtensionPolicy.php—advertisesWalletConnect()+GSLC_SSL_*constants when wallet libs reachable (match php-srcHAVE_ORALDAPgate, not phantom on default profile)ext/ldap/ldap_connect_wallet.php— VM execute path already present; add JIT lowering (currently throws#20638)ext/ldap/Module.php— register wallet fn + constants with the policy gateRepro
Done when
ldap_connect_wallet()+GSLC_SSL_*constants match ZendGate snapshot when filing (2026-08-06)
user_release_ready: yes