pinepain/php-object-maps

此软件包已被弃用且不再维护。未建议替代软件包。

PHP 的 ObjectMap 结构

v0.4.0 2018-03-08 16:47 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:16:09 UTC


README

我将远离 PHP 世界,我的所有 PHP 项目也将被弃用。由于没有强烈的社区和商业请求,我无意继续维护此项目。不会再有更新或文档。如果有人感兴趣,请随时通过我 GitHub 个人资料中指定的电子邮件联系我。

基于 Ref php 扩展的 PHP 的弱引用数据结构

Build Status Code Coverage

请阅读

维护此项目需要大量的时间和精力。如果您喜欢我的工作并想表达您的感激之情,请考虑在 https://www.patreon.com/pinepain 支持我。

需求

  • PHP >= 7.2
  • (可选,仅当需要弱映射行为时) php-ref 扩展

安装

composer require pinepain/php-object-maps

文档

此库提供两个主要类:ObjectMapObjectBiMap。它们就是它们的名字——经典的对象映射,将对象键映射到对象值。

ObjectMapObjectBiMap 之间的主要区别在于,ObjectBiMap 要求所有值都是唯一的,并提供从源映射中反转键和值的镜像 ObjectBiMap 映射。请注意,反转映射仍将保持与原始映射的连接,因此对链中任何 ObjectBiMap 的任何修改都将反映在整个链上。

映射行为

Both ObjectMapObjectBiMap 提供弱变体(需要 php-ref 扩展)可以通过将 ObjectMapInterface::{WEAK_KEY,WEAK_VALUE,WEAK_KEY_VALUE} 常量之一传递给构造函数来指定。默认情况下未启用任何弱性。请注意,当在键或/和值上启用弱行为时,它们的引用计数不会被映射内部增加,因此它们可能在不需要从映射中清除的情况下被销毁。

WEAK_KEY 表示只要键被销毁,键值对就会消失。WEAK_VALUE 对值是相同的,而 WEAK_KEY_VALUE 将在键或值被销毁时触发删除。

更多详细信息请参阅 tests

许可证

php-object-maps PHP 库受 MIT 许可证 的许可。