netglue / zf2-money-module
这是一个ZF2模块,集成了Sebastian Bergmans货币库,并在某个时候还会做其他事情...
Requires
- php: >=7.1
- ext-intl: >=1
- psr/container: ^1.0
- zendframework/zend-code: ^3.3
- zendframework/zend-escaper: ^2.6
- zendframework/zend-form: 2.12.0
- zendframework/zend-hydrator: ^2.4
- zendframework/zend-i18n: ^2.9
- zendframework/zend-modulemanager: ^2.8
- zendframework/zend-mvc: ^3.1
- zendframework/zend-view: ^2.10
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.2
README
不再积极维护 - 自行承担风险...
虽然你使用这个库的可能性不大,但你不应使用它。它目前存在一个需要将库的 zend-form
锁定到 2.12.0
的问题。它已过时,你可能应该直接导入 moneyphp/money 并自行配置。
一个旨在简化货币处理的Zend Framework 2模块。
基本上,此模块导入了 Sebastian Bergmann的货币库,但可能颇具争议地没有将其作为依赖项通过composer等使用。最初这么做的原因是为了访问Currency
中的私有静态成员变量,但自从很久以前为ZF2创建这个模块以来,情况已经发生了变化。这是一个有用的模块,但说实话,它应该使用 moneyphp/money 作为其值对象。我有一些使用NetglueMoney命名空间中的货币值对象的遗留代码,所以目前保持原样,但将来我可能会迁移到moneyphp。
需要注意的是,货币值对象将金额存储为整数,即给定货币的最小单位。
安装
$ composer require netglue/zf2-money-module
可用组件
货币列表
货币列表旨在提供一种简单的方法来配置应用程序将使用/接受/之类的ISO货币。可以通过服务定位器使用'NetglueMoney\Service\CurrencyList'
检索的简单对象。请查看module.config.dist.php
以获取有关配置的更多信息。
货币代码验证器
验证基本的代码格式,并使用货币列表服务来排除不“允许”或未知的代码。
货币选择元素
如果需要其验证器和可用货币列表都指向相同的货币列表,则应通过FormElementManager
检索此选择元素。
在您的表单元素配置中,您应使用其完全限定的类名\NetglueMoney\Form\Element\SelectCurrency
引用选择元素 - 将自动为其添加CurrencyCode
验证器。
货币表单
可以接受或填充到NetglueMoney\Money\Money
实例的表单。如果您查看测试,您将找到一个将模型绑定到填充货币实例的表单的示例。
视图助手
moneyFormat()
主要基于 Zend\I18n\View\Helper\CurrencyFormat
,但参数已更改
$money = new Money(123456, new Currency('GBP'));
echo $this->moneyFormat($money); // £1,234.56 (Assuming default locale of en_GB)
echo $this->moneyFormat($money, 'de_DE'); // 1.234,56 £
echo $this->moneyFormat($money, 'de_DE', false); // 1.234 £
您还可以指定自定义格式模式 - 更多信息请参阅 NumberFormatter 文档。
变更日志
3.1.0
- 一系列的 CS 修复
- 字段集的
getMoney()
方法现在更有可能返回一个货币实例 😬 🤞
3.0.0
- 移除了初始化器,并更新到需要 PHP >= 7.1
- 与 Zend Framework 3 兼容
- 理论上也与 Expressive 兼容
0.1.3
- 合并了从 sebastianbergmann/money 1.5.0 版本的变化
0.1.2
- 添加了
formMoney
视图助手和测试,用于渲染文本输入,这些输入旨在用于输入货币。接受区域设置并使用数字格式化器将输入值格式化为区域字符串 - 添加了
setMoney()
和getMoney()
方法到货币字段集,以便在没有绑定特定表单中的实体并且/或者不使用表单元素管理器时更容易使用
0.1.1
- 添加了
moneyFormat
视图助手和测试
0.1.0
- 初始版本包含货币和货币值对象,ZF2 模块设置以及货币字段集、伴随的 hydrator 和其他内容...
未来计划
- 迁移到使用 moneyphp/money 作为值对象