https://github.com/xp-framework/ldap
LDAP protocol support for the XP Framework
https://github.com/xp-framework/ldap
ldap php xp-framework
Last synced: 23 days ago
JSON representation
LDAP protocol support for the XP Framework
- Host: GitHub
- URL: https://github.com/xp-framework/ldap
- Owner: xp-framework
- Created: 2013-11-12T11:08:29.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2022-11-02T14:30:17.000Z (over 2 years ago)
- Last Synced: 2025-04-14T02:05:11.916Z (about 1 month ago)
- Topics: ldap, php, xp-framework
- Language: PHP
- Size: 3.23 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
Awesome Lists containing this project
README
LDAP support for the XP Framework
========================================================================[](https://github.com/xp-framework/ldap/actions)
[](https://github.com/xp-framework/core)
[](https://github.com/xp-framework/core/blob/master/LICENCE.md)
[](http://php.net/)
[](http://php.net/)
[](https://packagist.org/packages/xp-framework/ldap)The peer.ldap package implements LDAP (Lighweight Directory Access Protocol) access.
Example (LDAP search)
---------------------```php
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)
----------------------------```php
use peer\ldap\{LDAPConnection, LDAPEntry};$l= new LDAPConnection('ldap://uid=admin,o=roles,dc=planet-xp,dc=net:[email protected]');
$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)
-------------------------```php
use peer\ldap\{LDAPConnection, LDAPEntry};$l= new LDAPConnection('ldap://uid=admin,o=roles,dc=planet-xp,dc=net:[email protected]');
$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:```php
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.