einenlum/iron

0.0.2 2018-11-02 17:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:36 UTC


README

CircleCI Latest Stable Version Latest Unstable Version

一个像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();

可用方法

以及所有在 CarbonCarbonImmutable 对象中可用的方法(和获取器)。

为什么?

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。