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. 方法名称使用 camelCase 而不是 下划线为基础
  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-Clause) 许可证。更多信息请参阅LICENSE文件。