amberovsky / currency-doctrine
允许将 amberovsky/currency 作为 Doctrine 字段类型使用。
v0.3
2020-07-20 08:19 UTC
Requires
- php: ^7.4
- amberovsky/currency: ^0.3
- doctrine/orm: ^2.7
Requires (Dev)
- phpspec/phpspec: ^6.2
- phpstan/phpstan: ^0.12
- vimeo/psalm: ^3.12
This package is auto-updated.
Last update: 2024-09-20 17:33:12 UTC
README
amberovsky/currency-doctrine 包提供了将 amberovsky/currency 作为 Doctrine 字段类型使用的功能。
示例
配置
它需要在 CurrencyType::setCurrencyFactory 方法中注入 CurrencyFactory。请使用您当前的 DI 机制来完成此操作。
要配置 Doctrine 以使用 amberovsky/currency 作为字段类型,您需要在您的启动文件中设置以下内容
use Doctrine\DBAL\Types\Type; use Amberovsky\Money\Currency\Doctrine\CurrencyType; use Amberovsky\Money\Currency\CurrencyFactory; $currencyFactory = ...; // Get CurrencyFactory instance somehow if (!Type::hasType(CurrencyType::NAME)) { Type::addType(CurrencyType::NAME, CurrencyType::class); /** @var CurrencyType $currencyType */ $currencyType = Type::getType(CurrencyType::NAME); $currencyType->setCurrencyFactory($currencyFactory); }
Symfony
将以下内容添加到您的 Kernel.php
/** * @inheritDoc */ protected function initializeContainer() { parent::initializeContainer(); if (!Type::hasType(CurrencyType::NAME)) { Type::addType(CurrencyType::NAME, CurrencyType::class); /** @var CurrencyType $currencyType */ $currencyType = Type::getType(CurrencyType::NAME); $currencyType->setCurrencyFactory($this->container->get(CurrencyFactory::class)); } }
使用方法
然后,在您的模型中,您可以通过将 @Column
类型设置为 Currency
来注解属性。Doctrine 将处理其余部分。
use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="invoices") */ class Invoice { /** * @ORM\Column(type="Currency") */ private Currency $currency; public function getCurrency(): Currency { return $this->currency; } }
如何贡献
请fork此存储库并创建一个PR。确保在提交您的PR之前运行测试
make phpstan make psalm make phpspec
许可证
版权(C)2020 Anton Zagorskii,BSD-3-Clause许可证,详情请见许可证文件