rimelek/ldap-client

v1.0.0-alpha.3 2019-01-02 10:29 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:14 UTC


README

使用PHP编写的面向对象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 />';   
    }
}

更多信息即将推出。