pinepain / php-object-maps
PHP 的 ObjectMap 结构
Requires
- php: ~7.2
Requires (Dev)
- phpunit/phpunit: ^6.4
- pinepain/php-ref-stubs: ~0.6.0
Suggests
- ext-ref: Needed to support weak map variations
This package is not auto-updated.
Last update: 2022-02-01 13:16:09 UTC
README
我将远离 PHP 世界,我的所有 PHP 项目也将被弃用。由于没有强烈的社区和商业请求,我无意继续维护此项目。不会再有更新或文档。如果有人感兴趣,请随时通过我 GitHub 个人资料中指定的电子邮件联系我。
基于 Ref php 扩展的 PHP 的弱引用数据结构
请阅读
维护此项目需要大量的时间和精力。如果您喜欢我的工作并想表达您的感激之情,请考虑在 https://www.patreon.com/pinepain 支持我。
需求
- PHP >= 7.2
- (可选,仅当需要弱映射行为时) php-ref 扩展
安装
composer require pinepain/php-object-maps
文档
此库提供两个主要类:ObjectMap
和 ObjectBiMap
。它们就是它们的名字——经典的对象映射,将对象键映射到对象值。
ObjectMap
和 ObjectBiMap
之间的主要区别在于,ObjectBiMap
要求所有值都是唯一的,并提供从源映射中反转键和值的镜像 ObjectBiMap
映射。请注意,反转映射仍将保持与原始映射的连接,因此对链中任何 ObjectBiMap
的任何修改都将反映在整个链上。
映射行为
Both ObjectMap
和 ObjectBiMap
提供弱变体(需要 php-ref 扩展)可以通过将 ObjectMapInterface::{WEAK_KEY,WEAK_VALUE,WEAK_KEY_VALUE}
常量之一传递给构造函数来指定。默认情况下未启用任何弱性。请注意,当在键或/和值上启用弱行为时,它们的引用计数不会被映射内部增加,因此它们可能在不需要从映射中清除的情况下被销毁。
WEAK_KEY
表示只要键被销毁,键值对就会消失。WEAK_VALUE
对值是相同的,而 WEAK_KEY_VALUE
将在键或值被销毁时触发删除。
更多详细信息请参阅 tests。
许可证
php-object-maps PHP 库受 MIT 许可证 的许可。