rimelek / ldap-client
LDAP 客户端
v1.0.0-alpha.3
2019-01-02 10:29 UTC
Requires
- php: >=7.0
- ext-ldap: *
This package is auto-updated.
Last update: 2024-08-29 04:31:14 UTC
README
使用PHP编写的面向对象LDAP客户端。
依赖关系
- PHP >= 7.0
- ldap 扩展
通过composer安装
最新版
php composer.phar require rimelek/ldap-client:dev-master
最新标记的alpha版
php composer.phar require rimelek/ldap-client:1.0.0-alpha.2
如何使用
创建LDAP实例
首先,你需要一个对象,该对象知道所有连接数据和一些用于原生LDAP扩展的选项。这些选项不是必需的。
use Rimelek\LDAPCLient\LDAP; $ldap = new LDAP(); $ldap->setServer('ldap.domain.tld'); $ldap->setPort(389); // optional. Default: 389 $ldap->setManagerDn('uid=' . $user->getUsername() . ',ou=people,dc=domain,dc=tld'); $ldap->setPassword($user->getPassword()); $ldap->setScope(LDAP::SCOPE_SUB); // for search (*_ONE | *_BASE | *_SUB) $ldap->setBaseDn('ou=people,dc=domain,dc=tld'); // for search
创建LDAP过滤器
LDAP过滤器字符串遵循以下语法
Simplest filter: (key=value)
Multiple filters:
or: (key1=value1)|(key2>=value)
and: (key1=value1)&(key2>=value2)
You can also negate it:
(!((key1=value1)&(key2>=value2)))
当你需要许多过滤器时,编写它们可能很困难。在这里,过滤器是对象。
use Rimelek\LDAPClient\Filter; use Rimelek\LDAPClient\OrFIlter; use Rimelek\LDAPClient\AndFilter;
/*Simplest filter:*/ $filter = new Filter('key', 'value'); /*Multiple filters:*/ /*or:*/ $filter = new OrFilter([ new Filter('key1', 'value1'), new Filter('key2', 'value2', Filter::OP_GREATER_THAN), ]); /*and:*/ $filter = new AndFilter([ new Filter('key1', 'value1'), new Filter('key2', 'value2', Filter::OP_GREATER_THAN), ]); /* You can also negate it: */ $filter = new AndFilter([ new Filter('key1', 'value1'), new Filter('key2', 'value2', Filter::OP_GREATER_THAN), ], true);
过滤器第三个参数是操作符。以下列出所有这些操作符
- Filter::OP_EQUALITY (=)
- Filter::OP_GREATER_THAN (>=)
- Filter::OP_LESS_THAN (<=)
- Filter::OP_PROXIMITY (~=)
搜索
$result = $ldap->search($filter); $entries = $result->getEntries(); foreach ($entries as $entry) { $attr = $entry->getAttribute(); echo $attr->getName() . '<br />'; foreach ($attr as $value) { echo ' - ' . $value . '<br />'; } }
更多信息即将推出。