wmde / clock
一个简单的接口,用于获取当前时间而不绑定到全局系统资源。包含测试替身!
1.0.0
2018-09-26 02:09 UTC
Requires
- php: >=5.6
Requires (Dev)
- mediawiki/mediawiki-codesniffer: ~18.0
- ockcyp/covers-validator: ~1.0
- phpstan/phpstan: ~0.9.2
- phpunit/phpunit: ~7.1
- slevomat/coding-standard: ~4.5
- squizlabs/php_codesniffer: ~3.2
This package is auto-updated.
Last update: 2024-09-02 09:03:44 UTC
README
一个简单的接口,用于获取当前时间而不绑定到全局系统资源,同时提供了便于测试的简单实现。
Clock 使用
function yourCode(Clock $clock) { $time = $clock->now(); // Returns DateTimeImmutable. No global access and easily testable }
Clock 接口
interface Clock { public function now(): \DateTimeImmutable; }
提供实现
SystemClock
:使用全局系统资源StubClock
:返回构造函数中提供的值。在测试中很有用CollectionClock
:按顺序返回指定的值。在测试中很有用IncrementingClock
:返回无限增长的起始时间。在测试中很有用
安装
要在项目中使用 Clock 库,只需将 wmde/clock 依赖添加到项目的 composer.json
文件中。以下是一个仅定义 Clock 1.x 依赖的最小 composer.json
文件示例
{ "require": { "wmde/clock": "~1.0" } }
开发
为了开发,您需要安装 Docker 和 Docker-compose。不需要本地的 PHP 和 Composer。
sudo apt-get install docker docker-compose
运行 Composer
要使用 Composer 拉取项目依赖项,请运行
make composer install
您可以通过 make run
运行其他 Composer 命令,但当前不支持参数标志。如果您需要执行此类命令,可以按照此格式执行
docker run --rm --interactive --tty --volume $PWD:/app -w /app\
--volume ~/.composer:/composer --user $(id -u):$(id -g) composer composer install --no-scripts
其中 composer install --no-scripts
是正在执行的命令。
运行 CI 检查
要运行所有 CI 检查,包括 PHPUnit 测试、PHPCS 风格检查和覆盖率标签验证,请运行
make
运行测试
要仅运行 PHPUnit 测试,请运行
make test
要仅运行 PHPUnit 测试的子集或以其他方式传递标志给 PHPUnit,请运行
docker-compose run --rm app ./vendor/bin/phpunit --filter SomeClassNameOrFilter
发布说明
1.0.0 (2018-09-26)
初始发布,包含 Clock
、SystemClock
、StubClock
、CollectionClock
和 IncrementingClock