Category
stdlib · php-src-strict · ldap directory write API
Problem
Partial modify helpers ldap_mod_add / ldap_mod_del / ldap_mod_replace are registered, but the primary write APIs and batch/ext variants apps need for CRUD are not. Related open: #22177 compare/parse/attrs, #22164 bind_ext, #22168 search_ext, #22176 sasl_bind, #22181 references.
| Function |
Zend / php-src |
VM (2026-07-22) |
ldap_mod_add / ldap_mod_del / ldap_mod_replace |
yes |
yes |
ldap_add |
yes |
no |
ldap_delete |
yes |
no |
ldap_modify |
yes |
no |
ldap_modify_batch |
yes |
no |
ldap_add_ext / ldap_delete_ext / ldap_rename_ext |
yes |
no |
ldap_mod_add_ext / ldap_mod_del_ext / ldap_mod_replace_ext |
yes |
no |
php-src reference
PHP implementation target
ext/ldap/ — register beside existing ldap_modify_builtins.php / VmLdapModify.php; reuse native FFI already used for mod_add/del/replace
ldap_modify is alias semantics to full replace of attributes (Zend); ldap_modify_batch takes structured op list
- PHP-in-PHP over existing trampoline; no new C logic
Repro
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_ldap_add_delete_modify_missing.php'
Observed VM (2026-07-22):
ldap_connect=yes
ldap_mod_add=yes
ldap_mod_del=yes
ldap_mod_replace=yes
ldap_add=NO
ldap_delete=NO
ldap_modify=NO
ldap_modify_batch=NO
ldap_add_ext=NO
ldap_delete_ext=NO
ldap_rename_ext=NO
ldap_mod_add_ext=NO
ldap_mod_del_ext=NO
ldap_mod_replace_ext=NO
Done when
Category
stdlib· php-src-strict · ldap directory write APIProblem
Partial modify helpers
ldap_mod_add/ldap_mod_del/ldap_mod_replaceare registered, but the primary write APIs and batch/ext variants apps need for CRUD are not. Related open: #22177 compare/parse/attrs, #22164 bind_ext, #22168 search_ext, #22176 sasl_bind, #22181 references.ldap_mod_add/ldap_mod_del/ldap_mod_replaceldap_addldap_deleteldap_modifyldap_modify_batchldap_add_ext/ldap_delete_ext/ldap_rename_extldap_mod_add_ext/ldap_mod_del_ext/ldap_mod_replace_extphp-src reference
ext/ldap/ldap.stub.php—ldap_add,ldap_delete,ldap_modify,ldap_modify_batch,*_extvariantsext/ldap/ldap.c—PHP_FUNCTIONs; batch op array shapePHP implementation target
ext/ldap/— register beside existingldap_modify_builtins.php/VmLdapModify.php; reuse native FFI already used for mod_add/del/replaceldap_modifyis alias semantics to full replace of attributes (Zend);ldap_modify_batchtakes structured op listRepro
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_ldap_add_delete_modify_missing.php'Observed VM (2026-07-22):
Done when
LDAP\Resultwhere applicable) match Zend shapes.phptundertest/compliance/cases/ext/ldap/runtime/*.clogic