| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- require __DIR__.'/../vendor/autoload.php';
- use Money\Currencies;
- $buffer = <<<PHP
- <?php
- namespace Money;
- /**
- * This is a generated file. Do not edit it manually!
- *
- PHPDOC
- */
- trait MoneyFactory
- {
- /**
- * Convenience factory method for a Money object.
- *
- * <code>
- * \$fiveDollar = Money::USD(500);
- * </code>
- *
- * @param string \$method
- * @param array \$arguments
- *
- * @return Money
- *
- * @throws \InvalidArgumentException If amount is not integer(ish)
- */
- public static function __callStatic(\$method, \$arguments)
- {
- return new Money(\$arguments[0], new Currency(\$method));
- }
- }
- PHP;
- $methodBuffer = '';
- $currencies = new Currencies\AggregateCurrencies([
- new Currencies\ISOCurrencies(),
- new Currencies\BitcoinCurrencies(),
- ]);
- $currencies = iterator_to_array($currencies);
- usort($currencies, function (\Money\Currency $a, \Money\Currency $b) {
- return strcmp($a->getCode(), $b->getCode());
- });
- /** @var \Money\Currency[] $currencies */
- foreach ($currencies as $currency) {
- $methodBuffer .= sprintf(" * @method static Money %s(string|int \$amount)\n", $currency->getCode());
- }
- $buffer = str_replace('PHPDOC', rtrim($methodBuffer), $buffer);
- file_put_contents(__DIR__.'/../src/MoneyFactory.php', $buffer);
|