dreamscapes/ldap-core

此包已被废弃,不再维护。未建议替代包。

PHP 原生 ldap 函数的对象封装

3.1.1 2018-07-12 19:09 UTC

This package is not auto-updated.

Last update: 2024-01-06 12:18:12 UTC


README

Build Status Built with GNU Make

PHP 原生 ldap 函数的面向对象实现

关于

这个小库以优雅的对象方式提供对 ldap 函数的访问。

其目的不是为 ldap 交互提供花哨的额外功能,而是以面向对象的方式对原生 PHP 函数进行封装。因此,此库适用于那些喜欢面向对象编程风格的人,那些想要能够测试他们的 ldap 交互的人,或者那些想要编写自己的库以提供那种花哨的额外功能的人。

安装

要求

只要它们存在于您当前的 PHP 版本中,就提供对 ldap_modify_batchldap_escape 的支持。

  • ldap_modify_batch - PHP 5.4 分支从 5.4.26 开始提供,在 PHP 5.5.10 及更高版本的 PHP 中提供
  • ldap_escape - 从 PHP 5.6.0 开始提供

通过 Composer

composer require dreamscapes/ldap-core(访问 Packagist 查看所有可用版本列表)

用法

有两个类 - Dreamscapes\Ldap\Core\LdapDreamscapes\Ldap\Core\Result,每个类都实现了部分原生 ldap 函数的实例方法(一些不操作资源对象的功能是静态的)。区别原则很简单 - 如果函数处理 ldap 连接的状态,则它在第一个中实现,而处理从 ldap 服务器返回的数据(结果资源)的函数则在后者中实现。

差异

所有方法都尽可能接近原始函数命名,尽管有一些改进

  1. 默认使用 Ldap v3 协议
  2. 从所有方法名称中删除了 ldap_ 前缀
  3. 方法名称使用 camelCased 而不是 underscore_based
  4. 所有方法通过返回数据来返回数据,而不是通过填充引用传递的变量来返回数据
  5. 一些函数未实现(通常是因为它们是冗余的)
  6. 如果 ldap 协议遇到错误,则抛出异常,并在大多数情况下抑制标准的 PHP 警告和错误

示例

// Load Composer's autoload script...
include 'vendor/autoload.php';

// Import the class into current namespace
use Dreamscapes\Ldap\Core\Ldap;

// If ldap URI is provided, the Ldap instance will also open the connection
// via ldap_connect()
$con = new Ldap('ldap://example.com');
$con->bind('admin@example.com', 'my pass'); // Example AD credentials

// Read the rootDSE entry
$res = $con->read('', 'objectclass=*', ['*']);

// $res is now instance of Result class
echo "Number of entries in resultset: " . $res->countEntries();
print_r($res->getEntries());

文档

在线API文档可在此处获取。要离线生成API文档

git clone https://github.com/Dreamscapes/Ldap-Core.git
cd Ldap-Core
composer install
make docs

文档现在可在./docs/index.html找到

许可证

本软件遵循<强>BSD(3条款)许可证。有关更多信息,请参阅LICENSE文件。