tumblr / chorus-timekeeper
一个用于具有时间管理的依赖注入 (DI) 的超级简单的类
0.1.1
2023-06-21 08:20 UTC
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.8
- friendsofphp/php-cs-fixer: ^3.17
- infection/infection: >=0.10.5
- phan/phan: >=1.1
- phpstan/phpstan: >=0.10
- phpunit/phpunit: ^9.4
- symfony/phpunit-bridge: ^6.3
- vimeo/psalm: >=2
This package is not auto-updated.
Last update: 2024-09-12 12:00:46 UTC
README
Chorus TimeKeeper 是一个优雅的依赖注入 (DI) 时间管理实用工具。在其核心,它提供了对应用程序中时间管理的简单方法,允许进行一致的时间检索,甚至可以进行测试目的的时间操作。这在编写测试或在代码中模拟各种时间条件时非常有帮助。
它提供两个主要组件
TimeKeeper
:获取实时数据。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 贡献,请按照以下步骤操作
- 提出问题:在做出任何更改之前,创建一个问题描述您的想法或所需更改。
- 提交 PR:一旦您的想法获得批准,创建一个 Pull Request。确保包括或更新单元测试。
- 测试和代码风格:确保所有测试通过(
make test
)并修复任何代码风格问题(make cs
)。 - 描述您的更改:清楚地描述您所做的更改并包括测试说明。
- 破坏性更改警告:如果您的贡献引入了破坏性更改,请突出显示。任何破坏当前工作流程的修改,如更改命名空间或功能,都是破坏性更改。
请记住,如果您计划进行重大的重构或引入破坏性更改,您的 PR 可能不会被批准。
一旦您的 PR 被批准,它将被合并,并发布新版本。
许可证
本项目根据 GNU 通用公共许可证 v2.0 许可。