kariricode/contract

KaririCode框架中接口定义的中央仓库。为指定的命名空间实现接口代码,遵循PSR标准并利用现代PHP特性。

v2.6.2 2024-07-18 13:49 UTC

This package is auto-updated.

Last update: 2024-09-18 14:15:40 UTC


README

en pt-br

Docker Makefile PHP PHPUnit

概述

Contract组件是KaririCode框架的基本部分,提供了一套全面的接口,用于定义各种数据结构和行为。这些接口是实施KaririCode生态系统内和之外的强大、一致和互操作的数据结构组件的基础。

主要特性

  • 全面的接口集:涵盖广泛的数据结构和行为。
  • 类型安全:利用PHP 8.3+特性进行更好的类型检查和更高的代码可靠性。
  • 灵活性:允许对同一接口进行多种实现,促进代码重用和模块化。
  • 标准化:在不同实现之间提供一致的API。

可用的接口及其应用

结构接口

Collection

定义元素集合的契约。适用于实现列表、集合和其他自定义集合。

建议应用

  • 在电子商务网站上实现产品目录。
  • 在生产力应用中管理任务列表。

Map

定义存储键值对的映射数据结构的契约。

建议应用

  • 实现内存数据缓存。
  • 在Web应用中管理用户会话。

Set

定义不允许重复元素的集合数据结构的契约。

建议应用

  • 维护博客系统中的唯一标签列表。
  • 基于IP地址实现垃圾邮件过滤器。

Queue

定义遵循FIFO(先进先出)原则的队列数据结构的契约。

建议应用

  • 餐厅中的订单处理系统。
  • 打印系统中的任务管理。

Stack

定义遵循LIFO(后进先出)原则的栈数据结构的契约。

建议应用

  • 在Web浏览器中实现浏览器历史记录。
  • 在编程语言解释器中管理函数调用。

Tree

定义树数据结构的契约。

建议应用

  • 表示产品类别等层次结构。
  • 实现虚拟文件系统。

Heap

定义堆数据结构的契约。

建议应用

  • 在客户服务系统中实现优先队列。
  • 优化排序和搜索算法。

Deque

扩展队列接口以定义双端队列结构的契约。

建议应用

  • 实现用于流处理的循环缓冲区。
  • 开发可以两端添加或删除卡片的游戏。

行为接口

Countable, Indexable, Modifiable, Searchable

这些接口定义了可应用于各种数据结构的常见行为。

建议应用

  • 实现具有特定功能的自定义集合。
  • 为现有数据结构开发包装器以添加新功能。

Sortable, Comparable

定义可排序和可比较的对象的契约。

建议应用

  • 实现自定义排序算法。
  • 开发有序数据结构,如二叉搜索树。

IterableCollection, Iterator

提供遍历集合的能力。

建议应用

  • 实现可用于foreach循环的自定义集合。
  • 开发用于遍历复杂数据结构的专用迭代器。

专用接口

BPlusTreeCollection

定义B+树数据结构的契约。

建议应用

  • 实现数据库索引以实现快速查询。
  • 优化文件系统,以便快速访问大量数据。

序列化

定义序列化和反序列化数据的契约。

建议应用

  • 实现一个可以存储复杂对象的缓存系统。
  • 开发自定义数据持久机制。

安装

要求

  • PHP 8.3或更高版本
  • Composer

通过Composer

composer require kariricode/contract

使用方法

要在项目中使用这些接口,只需在类中实现它们。例如

use KaririCode\Contract\DataStructure\Collection;

class MyCollection implements Collection
{
    // Implement the methods defined in the Collection interface
}

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

支持和社区

致谢

  • KaririCode框架团队和贡献者。
  • PHP社区,感谢他们的持续支持和灵感。

由KaririCode团队用❤️构建。赋能开发者构建更稳健和灵活的PHP应用程序。

由Walmir Silva维护 - walmir.silva@kariricode.org