ocramius / deprecated-money
Requires
- php: ^8.0
- ext-bcmath: *
- ext-json: *
Requires (Dev)
- ext-gmp: *
- ext-intl: *
- cache/taggable-cache: ^1.1.0
- doctrine/coding-standard: ^9.0
- doctrine/instantiator: ^1.4.0
- florianv/exchanger: ^2.6.3
- florianv/swap: ^4.3.0
- moneyphp/iso-currencies: ^3.2.1
- php-http/message: ^1.11.0
- php-http/mock-client: ^1.4.1
- phpbench/phpbench: 1.0.0-beta1@BETA
- phpspec/phpspec: ^7.0.1
- phpunit/phpunit: ^9.5.4
- psalm/plugin-phpunit: ^0.15.1
- psr/cache: ^1.0.1
- roave/infection-static-analysis-plugin: ^1.7
- vimeo/psalm: ^4.7
Suggests
- ext-gmp: Calculate without integer limits
- ext-intl: Format Money objects with intl
- florianv/exchanger: Exchange rates library for PHP
- florianv/swap: Exchange rates library for PHP
- psr/cache-implementation: Used for Currency caching
Replaces
- moneyphp/money: 3.99.99
- dev-master / 3.x-dev
- 3.99.99
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v3.0.0-beta4
- v3.0.0-beta.3
- v3.0.0-beta.2
- v3.0.0-beta
- v3.0.0-alpha
- 1.x-dev
- v1.3.0
- 1.2.1
- 1.2.0
- 1.1.0
- dev-feature/quick-money
- dev-null_test
- dev-compare_575
- dev-denormalize
- dev-calculator_registry
- dev-precise-money
This package is auto-updated.
Last update: 2021-05-02 23:03:10 UTC
README
PHP 库,使处理货币更加安全、简单和有趣!
"如果我每次看到有人用 FLOAT 存储货币,我就有 $999.997634" -- Bill Karwin
简而言之:你不应该用浮点数表示货币值。 wherever 你需要表示货币,请使用此 Money 值对象。自3.0版本起,此库使用 字符串 内部以支持无限整数。
<?php use Money\Money; $fiveEur = Money::EUR(500); $tenEur = $fiveEur->add($fiveEur); list($part1, $part2, $part3) = $tenEur->allocate([1, 1, 1]); assert($part1->equals(Money::EUR(334))); assert($part2->equals(Money::EUR(333))); assert($part3->equals(Money::EUR(333)));
文档可在 http://moneyphp.org 查找
要求
PHP 5.6+. 除了这个之外,此库没有其他外部要求。MoneyPHP 不会为那些不被语言本身支持的 PHP 版本提供任何支持。可能会有一些特定功能的额外依赖,例如 Swap 交换实现,请查看文档获取更多信息。
安装
通过 Composer
$ composer require moneyphp/money
特性
- JSON 序列化
- 支持大整数,利用不同的、透明的计算逻辑(bcmath、gmp、plain php)
- 货币格式化(包括 intl 格式化器)
- 货币存储库(包括 ISO 货币)
- 货币兑换(包括 Swap 实现)
文档
请参阅 官方文档。
测试
我们尝试遵循 BDD 和 TDD,因此我们使用 phpspec 和 phpunit 测试此库。
$ composer test
Docker 中运行测试
Money 需要一系列依赖,因此你可能想在 Docker 中运行它。
首先,在本地构建镜像
$ docker build -t moneyphp .
然后运行测试
$ docker run --rm -it -v $PWD:/app -w /app moneyphp vendor/bin/phpunit --exclude-group segmentation
贡献
我们非常希望看到你帮助我们使这个库变得越来越好。请注意,我们不使用类名中的后缀和前缀,所以不是 CurrenciesInterface
,而是 Currencies
。除此之外,Style CI 会帮助你使用与我们相同的代码风格。请创建 PR 时提供测试,并在提交问题时提供清晰的错误描述。
安全性
如果你发现任何安全相关的问题,请通过 team@moneyphp.org 联系我们。
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。
致谢
这个库深受Martin Fowler的Money模式的启发。特别感谢Mathias Verraes,没有他的贡献,包括代码和他在博客上的分享,这个库不可能达到现在的水平。