You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 days ago | |
---|---|---|
src | 5 days ago | |
tests | 5 days ago | |
.gitignore | 3 weeks ago | |
.pre-commit-config.yaml | 3 weeks ago | |
README.md | 3 weeks ago | |
composer.json | 1 week ago | |
phpstan.neon | 5 days ago | |
phpunit.xml | 3 weeks ago |
README.md
EesyLDAP (PHP)
PHP object oriented interface for searching and manipulating LDAP entries & filters.
Notes:
- work in progress. Start by implementing LDAP filter abstraction class.
- freely inspired by some other open-source projects and notably PEAR Net_LDAP2 (abandoned).
Installation
composer require brenard/eesyldap
Usage
Manipulating LDAP filter strings
To create a new filter:
// Match objects with uid equals 'admin'
// (uid=admin)
$filter = new \EesyLDAP\Filter('uid', 'equals', 'admin');
// Match objects with uid equals 'admin' and mail equals 'admin@example.com'
// (&(uid=admin)(mail=admin@example.com))
$filter = new \EesyLDAP\Filter(
'and',
new \EesyLDAP\Filter('uid', '=', 'admin'),
'mail=admin@example.com'
);
// Match objects with uid different than admin
// (!(uid=admin))
$filter = new \EesyLDAP\Filter('not', 'uid=admin');
// Match objects with uid attribute present
// (uid=*)
$filter = new \EesyLDAP\Filter('uid', 'present');
By default, all pattern value are automatically escape. To control it, add a boolean as last Filter constructor argument:
// Disable automatic escaping
// (uid=admin-*)
$filter = new \EesyLDAP\Filter('uid', '=', 'admin-*', false);
You also could escape/unescape value manually:
$escaped = \EesyLDAP\Filter::escape('Administrator (admin)');
$unescaped = \EesyLDAP\Filter::unescape('Administrator \28admin\29');
You also could parse an existing filter string with the parse()
method:
$filter = \EesyLDAP\Filter::parse('(&(uid=admin)(mail=admin@example.com))');