Viewing file: generate-money-factory.php (1.29 KB) -rwxrwxrwx Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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);
|