Open Journal Systems  3.3.0
generate-money-factory.php
1 <?php
2 
3 require __DIR__.'/../vendor/autoload.php';
4 
6 
7 $buffer = <<<PHP
8 <?php
9 
10 namespace Money;
11 
17 trait MoneyFactory
18 {
33  public static function __callStatic(\$method, \$arguments)
34  {
35  return new Money(\$arguments[0], new Currency(\$method));
36  }
37 }
38 
39 PHP;
40 
41 $methodBuffer = '';
42 
43 $currencies = new Currencies\AggregateCurrencies([
46 ]);
47 
48 $currencies = iterator_to_array($currencies);
49 
50 usort($currencies, function (\Money\Currency $a, \Money\Currency $b) {
51  return strcmp($a->getCode(), $b->getCode());
52 });
53 
55 foreach ($currencies as $currency) {
56  $methodBuffer .= sprintf(" * @method static Money %s(string|int \$amount)\n", $currency->getCode());
57 }
58 
59 $buffer = str_replace('PHPDOC', rtrim($methodBuffer), $buffer);
60 
61 file_put_contents(__DIR__.'/../src/MoneyFactory.php', $buffer);
Money\Currencies\ISOCurrencies
Definition: ISOCurrencies.php:14
Money
Money\Currencies
Definition: AggregateCurrencies.php:3
Money\Currency
Definition: vendor/moneyphp/money/src/Currency.php:14
Money\Currencies
Definition: Currencies.php:12
Money\Currencies\BitcoinCurrencies
Definition: BitcoinCurrencies.php:12