Re: ldap_search sort extension, patch included

From: Date: Sat, 17 Nov 2001 22:22:21 +0000
Subject: Re: ldap_search sort extension, patch included
References: 1 2  Groups: php.dev php.general 
Request: Send a blank email to php-dev+get-70758@lists.php.net to get a copy of this message
Stig Venaas wrote: > > On Sat, Nov 17, 2001 at 04:31:26AM +0100, Andre Oppermann wrote: > > Hello all, > > > > This patch enhances PHP4's ldap_search with a call to > > ldap_sort_entries(). > > In what LDAP APIs are ldap_sort_entries defined? What lib/API are you > using? I wonder how well this works, sorting all kinds of Unicode is > more or less impossible, but if some APIs have this function... This function is supported by OpenLDAP 1.x/2.x, UMICH and Netscape SDK as well. Unicode is no problem because you can specify your own comparsion function callback (the last parameter "strcmpncase"). > I was also thinking of adding support for server side sorting. I'm The problem with server side sorting is that it is a LDAPv3 only function and there is no requirement that LDAP server implements this. > thinking of a different PHP API, so that we don't need to add even > more parameters to ldap_search(). Adding parameters to ldap_search() I added it only to ldap_search() because only there I have access to the full LDAPMessage chain. The function needs **ldap_res, not just the *ldap_res that is delivered by that internal function in PHP. > that only are valid with some APIs is bad I think. What I have in > mind is something like: ldap_search is valid with basically every ldap lib out there. > ldap_sort($ld, $sortfilter); > ldap_search($ld,...); (as usual) > > where the filter is used for all following searches, until a new filter > is defined. Empty filter could turn it off. Until now the right thing to do (see ldapsearch tool in OpenLDAP/UMICH) to do this: ldap_search($ld,...); ldap_sort($ld, $res, $sortlist, [OPT_UNICODE | WHATEVER]); > Do people think that this is better? I'm about to commit a patch that > replaces the current link pointer, with a structure that might contain > other state PHP needs per link. The link pointer will then be just a > part of the struct. This is needed for set_rebind_proc() which I'm > working on right now. This won't be visible in PHP land, except that > it makes it easy to have an API like what I suggest for ldap_sort(). I think your structure patch makes sense. > Before deciding on ldap_sort() I would like to know a bit about what > APIs support it though. Well, there no problem in providing both API. The ldap_sort() call is useable today with all ldap libs and with any LDAP server. Server side sorting is nice if you have LDAPv3 and your server supports it. -- Andre

« previous php.dev (#70758) next »