xp-framework / ldap
LDAP support for the XP Framework
Installs: 59 609
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 1
Requires
- php: >=7.0.0
- xp-framework/core: ^11.0 | ^10.0 | ^9.0 | ^8.0 | ^7.0
- xp-framework/networking: ^10.0 | ^9.0 | ^8.0 | ^7.0
Requires (Dev)
- xp-framework/unittest: ^11.0 | ^10.0 | ^9.0 | ^8.0 | ^7.0
This package is auto-updated.
Last update: 2024-10-30 01:31:48 UTC
README
The peer.ldap package implements LDAP (Lighweight Directory Access Protocol) access.
Example (LDAP search)
use peer\ldap\LDAPConnection; use util\cmd\Console; $l= new LDAPConnection('ldap://ldap.example.com'); $l->connect(); $search= $l->search( 'ou=People,dc=OpenLDAP,dc=Org', '(objectClass=*)' ); Console::writeLinef('===> %d entries found', $search->numEntries()); foreach ($search as $result) { Console::writeLine('---> ', $result->toString()); } $l->close();
Example (Modifying an entry)
use peer\ldap\{LDAPConnection, LDAPEntry}; $l= new LDAPConnection('ldap://uid=admin,o=roles,dc=planet-xp,dc=net:password@ldap.example.com'); $l->connect(); with ($entry= $l->read(new LDAPEntry('uid=1549,o=people,dc=planet-xp,dc=net'))); { $entry->setAttribute('firstname', 'Timm'); $l->modify($entry); } $l->close();
Example (Adding an entry)
use peer\ldap\{LDAPConnection, LDAPEntry}; $l= new LDAPConnection('ldap://uid=admin,o=roles,dc=planet-xp,dc=net:password@ldap.example.com'); $l->connect(); with ($entry= new LDAPEntry('uid=1549,o=people,dc=planet-xp,dc=net')); { $entry->setAttribute('uid', 1549); $entry->setAttribute('firstname', 'Timm'); $entry->setAttribute('lastname', 'Friebe'); $entry->setAttribute('objectClass', 'xpPerson'); $l->add($entry); } $l->close();
Dynamically creating LDAP queries
If the LDAP queries need to be constructed dynamically the LDAPQuery class provides a printf-style syntax to do so:
use peer\ldap\LDAPQuery; $res= $ldap->searchBy(new LDAPQuery( 'o=people,dc=planet-xp,dc=net', '(&(objectClass=%c)(|(username=%s)(uid=%d)))', 'xpPerson', 'friebe' 1549 ));
When using the "%s" token, the value passed is escaped according to rules in LDAP query syntax. The %c token copies as-is, and %d handles the argument as numeric value.