brenard / eesyldap
用于搜索和操作LDAP条目及过滤器的面向对象接口
dev-master
2023-03-26 14:33 UTC
Requires (Dev)
- lstrojny/phpunit-function-mocker: ^1.1
- mockery/mockery: ^1.5
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-26 17:29:47 UTC
README
PHP面向对象的接口,用于搜索和操作LDAP条目及过滤器。
注意
- 正在进行中。首先实现LDAP过滤器抽象类。
- 受一些其他开源项目启发,特别是PEAR Net_LDAP2 (已放弃)。
安装
composer require brenard/eesyldap
使用
操作LDAP过滤器字符串
创建新的过滤器
// 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');
默认情况下,所有模式值都会自动转义。要控制它,请将布尔值作为Filter构造函数的最后一个参数添加
// Disable automatic escaping
// (uid=admin-*)
$filter = new \EesyLDAP\Filter('uid', '=', 'admin-*', false);
您也可以手动转义/解转义值
$escaped = \EesyLDAP\Filter::escape('Administrator (admin)');
$unescaped = \EesyLDAP\Filter::unescape('Administrator \28admin\29');
您还可以使用parse()
方法解析现有的过滤器字符串
$filter = \EesyLDAP\Filter::parse('(&(uid=admin)(mail=admin@example.com))');