tumblr/chorus-timekeeper

一个用于具有时间管理的依赖注入 (DI) 的超级简单的类

0.1.1 2023-06-21 08:20 UTC

This package is not auto-updated.

Last update: 2024-09-12 12:00:46 UTC


README

Chorus TimeKeeper 是一个优雅的依赖注入 (DI) 时间管理实用工具。在其核心,它提供了对应用程序中时间管理的简单方法,允许进行一致的时间检索,甚至可以进行测试目的的时间操作。这在编写测试或在代码中模拟各种时间条件时非常有帮助。

它提供两个主要组件

  1. TimeKeeper:获取实时数据。
  2. FakeTimeKeeper:在测试期间帮助模拟或操作时间。

例如,在测试对时间敏感的组件时,您可以使用 FakeTimeKeeper 预设时间场景,避免在实时等待或模拟系统上的日期更改的麻烦。

要求

  • PHP ^7.4 或 ^8.0

安装

您可以通过 Composer 安装此软件包

composer require tumblr/chorus-timekeeper

基本用法

// Using the real TimeKeeper
$timekeeper = new Tumblr\Chorus\TimeKeeper();

echo $timekeeper->getCurrentUnixTime();  // Outputs the current unix epoch time.

// Using the FakeTimeKeeper
$fakeTimeKeeper = new Tumblr\Chorus\FakeTimeKeeper(1628700000);  // Set a specific unix time.

echo $fakeTimeKeeper->getCurrentUnixTime();  // Outputs 1628700000.

开发工作流程

项目有一个 Makefile,用于简化开发过程。您可以使用各种 make 命令来运行测试、验证代码标准等。以下是一个快速概述

1. 预备条件设置

确保您的环境设置正确

  • 安装所需的软件包
make prerequisites
  • 报告 PHP 位置
make report-php-location

2. 测试

运行所有测试

make test

仅运行 PHPUnit 测试

make phpunit

生成 PHPUnit 测试覆盖率

make phpunit-coverage

3. 静态分析

使用 psalm 进行静态分析

make sa

4. 代码标准

使用 PHP CS Fixer 修复编码标准

make cs

5. 变异测试

运行变异测试以确保代码质量

make mt

6. Composer

验证 composer 文件

make composer-validate

7. YAML Linting

检查 YAML 文件以确保正确性

make yamllint

贡献

如果您想为 Chorus TimeKeeper 贡献,请按照以下步骤操作

  1. 提出问题:在做出任何更改之前,创建一个问题描述您的想法或所需更改。
  2. 提交 PR:一旦您的想法获得批准,创建一个 Pull Request。确保包括或更新单元测试。
  3. 测试和代码风格:确保所有测试通过(make test)并修复任何代码风格问题(make cs)。
  4. 描述您的更改:清楚地描述您所做的更改并包括测试说明。
  5. 破坏性更改警告:如果您的贡献引入了破坏性更改,请突出显示。任何破坏当前工作流程的修改,如更改命名空间或功能,都是破坏性更改。

请记住,如果您计划进行重大的重构或引入破坏性更改,您的 PR 可能不会被批准。

一旦您的 PR 被批准,它将被合并,并发布新版本。

许可证

本项目根据 GNU 通用公共许可证 v2.0 许可。