brenard/eesyldap

用于搜索和操作LDAP条目及过滤器的面向对象接口

dev-master 2023-03-26 14:33 UTC

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))');

许可证

GNU Lesser General Public License v3 (或更高版本).