dreamscapes / ldap-core
此包已被废弃,不再维护。未建议替代包。
PHP 本地 ldap 函数的对象封装
3.1.1
2018-07-12 19:09 UTC
Requires
- php: >=5.4.0
- ext-ldap: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-01-06 12:18:12 UTC
README
PHP 本地 ldap 函数的面向对象实现
关于
这个小库提供了以面向对象的方式访问 ldap 函数。
它的目的不是为了提供 ldap 交互的花哨的额外功能,而是为了以面向对象的方式封装 PHP 的本地函数,使其在面向对象的世界中合理。因此,此库旨在为那些喜欢面向对象编程风格的人、想要能够测试他们的 ldap 交互的人或想要编写自己的库以提供那些花哨的额外功能的人。
安装
要求
只要在当前的 PHP 版本中存在,就提供对
ldap_modify_batch
和ldap_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\Ldap
和 Dreamscapes\Ldap\Core\Result
,每个类都实现了部分本地 ldap 函数作为实例方法(一些不操作资源对象的功能是静态的)。区分原则很简单 - 如果函数处理 ldap 连接的状态,则实现在前者中,而处理从 ldap 服务器返回的数据(结果资源)的函数实现在后一个类中。
差异
所有方法都尽可能接近原始函数命名,尽管有一些改进
- 默认使用 Ldap v3 协议
- 从所有方法名称中移除了 ldap_ 前缀
- 方法名称使用 camelCase 而不是 下划线为基础
- 所有方法通过返回它们来返回数据,而不是通过填充作为引用传递的变量
- 某些函数未实现(通常因为它们是冗余的)
- 如果 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文件。