lusitanian/phpmoney

PHP Money 模式实现

dev-master 2013-01-27 08:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:26:20 UTC


README

PHPMoney 是一个单元测试的 Money 模式实现(不包括货币,该功能已在 TODO 列表中),适用于 PHP 5.3+

安装(composer)

将以下项目添加到您的 composer.json 的 require 部分:"lusitanian/phpmoney": "dev-master"

使用方法

类以 PSR-0 兼容的方式设置,如果不使用 composer 安装包(它会自动生成自动加载器),则可以与任何 PSR-0 自动加载器一起使用。该库包括一个 MoneyFactory,它将使用在您的 PHP 安装上可用的最佳 MathProvider 为您创建 Money 实例。

示例用法

<?php
$factory = new PHPMoney\MoneyFactory();
$twoDollars = $factory->createMoney(200);
$threeDollars = $factory->createMoney(300);
$fiveDollars = $twoDollars->add($threeDollars);
echo $fiveDollars->format();

当然,您也可以不使用工厂创建 Money 实例。您需要为每个 Money 实例传递一个 MathProvider 实例(您可以使用并应该为多个 Money 对象使用相同的 MathProvider 实例)。

<?php
$bcMathProvider = new PHPMoney\MathProvider\BCMathProvider();
$oneDollar = new PHPMoney\Money(100, $bcMathProvider);
$twoDollars = new PHPMoney\Money(200, $bcMathProvider);

测试

测试在 tests 文件夹中,代码覆盖率达到了 100%。您需要 phpunit 来运行它们。包含了一个 phpunit.xml 文件。