harp-orm / money
Sebastian Bergmann 的 Money 的辅助特质
0.2.2
2014-08-28 11:58 UTC
Requires
- php: >=5.4.0
- clippings/currency-convert: ~0.1
- harp-orm/harp: ~0.3.2
This package is auto-updated.
Last update: 2024-09-21 20:43:43 UTC
README
Sebastian Bergmann 的 Money 的辅助特质
用法
这通过特质为您的模型添加 "value" 属性。这是通过 ValueTrait 和 CurrencyTrait 实现的。第一个添加了处理 Money 对象的方法,而 CurrencyTrait 负责跟踪使用哪种货币。
// Model Class
use Harp\Harp\AbstractModel;
use Harp\Money\ValueTrait;
use Harp\Money\CurrencyTrait;
class User extends AbstractModel
{
use ValueTrait;
use CurrencyTrait;
public static function initialize($config)
{
// ...
ValueTrait::initialize($config)
CurrencyTrait::initialize($config)
}
// ...
}
数据库表
┌─────────────────────────┐
│ Table: User │
├─────────────┬───────────┤
│ id │ ingeter │
│ name │ string │
│ currency* │ string │
│ value* │ integer │
└─────────────┴───────────┘
* Required fields
方法
ValueTrait 方法
CurrencyTrait 方法
可冻结
使用 FreezableTrait 可以让您轻松地在数据库中冻结值。您需要实现 performFreeze 和 performUnfreeze 方法。 数据库表:
┌─────────────────────────┐
│ Table: User │
├─────────────┬───────────┤
│ id │ ingeter │
│ name │ string │
│ isFrozen* │ integer │
└─────────────┴───────────┘
* Required fields
FreezableTrait 方法
可冻结值
这结合了 ValueTrait 和 FreezableTrait,允许您在模型中 "冻结" 值。它需要一个 getSourceValue
,它返回作为 Money 对象的动态值。调用 "freeze" 后,getSourceValue
的结果将存储在数据库中,并且随后的 "getValue" 调用将返回冻结的值。
此外,如果 getSourceValue
的价格使用不同的货币,请使用 Converter 类将其转换为目标货币。
FreezableTrait 方法
许可证
版权 (c) 2014, Clippings Ltd. 由 Ivan Kerin 开发
根据 BSD-3-Clause 许可证,阅读 LICENSE 文件。