Hello, I’m working on adding controls support to php-ldap, so far sending controls to the server works fine. I would now like to be able to get the controls returned by the server.
This can easily be done when methods are returning the result object, like ldap_search does, in which case calling ldap_parse_result on the result object gives access to the controls. But for all methods returning a boolean, I need to add some way to get the result object back. These methods are: ldap_bind, ldap_sasl_bind, ldap_add, ldap_mod_replace, ldap_modify (which actually is an alias on ldap_mod_replace), ldap_mod_add, ldap_mod_del, ldap_delete, ldap_modify_batch, ldap_compare and ldap_rename. I can see 4 solutions: - Return a result object instead of the boolean, but that would be breaking BC and would mean the caller have to call ldap_parse_result just to now if it worked, it will bloat code most likely. - Add an optional out parameter getting filled with the result if it’s there. That’s a bit ugly and would get messy if we need to add more parameters later. - Store the result object and add an ldap_get_result() method to get the result from the last ldap call. This is close to what is done for errors. I don’t like this very much because is means storing in memory an object without knowing if it will be used, and complex ldap calls will need one more method call. - Creating separate methods which returns the result object. This is what was done by the controls patches outthere, and what is done in the C API as well. That would result in ldap_bind_ext, ldap_add_ext, … which people would use when they need to parse the result themselves. So I would go toward the 4th option but I’m interested in any opinion on this, or any remarks. Côme -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php