einenlum / iron
0.0.2
2018-11-02 17:37 UTC
Requires
- nesbot/carbon: ^2.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14@dev
- phpspec/phpspec: ^5.1@dev
- phpstan/phpstan: ^0.11.0@dev
- phpunit/phpunit: ^7.5@dev
This package is auto-updated.
Last update: 2024-09-29 05:08:36 UTC
README
一个像Carbon一样正确实现的工具。
安装
composer require einenlum/iron:dev-master
用法
<?php use Iron\Iron; // Can be constructed with a \DateTime or \DateTimeImmutable object $iron = Iron::from(new \DateTimeImmutable()); // A \DateTimeImmutable object, two days later $later = $iron->addDays(2)->toDateTimeImmutable();
可用方法
以及所有在 Carbon 上 CarbonImmutable
对象中可用的方法(和获取器)。
为什么?
Carbon 是一个非常有用的工具。我只是对他们的实现方式不太满意。扩展原生 \DateTime
类似乎很危险(有关此问题的文档 在这里,这也适用于PHP)。我们不应该扩展我们无法拥有的代码的行为。另外,能够将 Carbon
对象传递给期待原生 \DateTime
对象的方法,对我来说似乎是错误的。
在这里,我们使用 Iron
在底层使用 \ImmutableDateTime
对象以流畅的API操作数据,并最终返回一个本地的PHP \DateTimeImmutable
(或 \DateTime
)对象。
目前它仅封装了Carbon调用和获取器。下一步肯定是在这里实现所有我们需要的,以最终摆脱Carbon。
测试
该项目得益于PHPSpec和PHPUnit进行测试。要运行测试
composer test
CS修复
通过PHP-CS-Fixer检查和修复了编码标准。要修复您的代码,只需运行 composer cs-fix
。
贡献
请随时贡献并改进此项目。
许可
MIT。