luxifer/currency-manager

简单、轻量级的货币管理器

0.3.0 2015-10-22 13:17 UTC

This package is auto-updated.

Last update: 2024-09-08 06:31:44 UTC


README

这个库旨在成为一个简单轻量级的货币管理器。它包含一个JSON文件,其中包含几乎所有货币的定义。使用这个库,您可以通过一些字段查找货币,并在项目中使用这些定义。此库需要 jms/serializer 来工作。

安装

composer require luxifer/currency-manager

使用

<?php

require 'vendor/autoload.php';

$serializer = JMS\Serializer\SerializerBuilder::create()->build();
$manager = new Luxifer\Manager\CurrencyManager($serializer);

$euro = $manager->getCurrencyBy('code', 'EUR'); // Luxifer\Model\Currency

序列化

此库为 jms\serializer 提供了一个新的处理器来处理从 Currency 进行序列化和反序列化。

<?php

$serializer->configureHandlers(function(JMS\Serializer\Handler\HandlerRegistry $registry) use ($manager) {
    $registry->registerSubscribingHandler(new Luxifer\Handler\CurrencyHandler($manager));
});

现在您可以在对象内部将 Currency 作为 Type 使用。

<?php
use JMS\Serializer\Annotation\Type;

class MyObject
{
    /**
     * @Type("Currency")
     *
     * will serialize to the currency ISO code
     */
    protected $currency;

    /**
     * @Type("Currency<'symbol'>")
     *
     * will serialize to the currency symbol
     */
    protected $symbol;
}

感谢

我要感谢 @Fluidbyte,他在 gist 上发布了初始货币列表。