These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * Finance module for HiPanel |
||
4 | * |
||
5 | * @link https://github.com/hiqdev/hipanel-module-finance |
||
6 | * @package hipanel-module-finance |
||
7 | * @license BSD-3-Clause |
||
8 | * @copyright Copyright (c) 2015-2019, HiQDev (http://hiqdev.com/) |
||
9 | */ |
||
10 | |||
11 | namespace hipanel\modules\finance\helpers; |
||
12 | |||
13 | use hipanel\helpers\ArrayHelper; |
||
14 | use hipanel\helpers\StringHelper; |
||
15 | use hipanel\modules\finance\models\Bill; |
||
16 | use Yii; |
||
17 | |||
18 | /** |
||
19 | * Class CurrencyFilter can be used to filter currencies array in finance module |
||
20 | */ |
||
21 | class CurrencyFilter |
||
22 | { |
||
23 | /** |
||
24 | * Adds currency symbols to each of element and filters it |
||
25 | * @param string[] $currencies Need to filter currencies list |
||
26 | * @return string[] Filtered currencies list with symbols |
||
27 | */ |
||
28 | public static function addSymbolAndFilter(array $currencies): array |
||
29 | { |
||
30 | $currencies = array_combine(array_keys($currencies), array_map(function (string $k) { |
||
31 | return StringHelper::getCurrencySymbol($k); |
||
32 | }, array_keys($currencies))); |
||
33 | |||
34 | return static::getUsedCurrencies($currencies); |
||
0 ignored issues
–
show
|
|||
35 | } |
||
36 | |||
37 | /** |
||
38 | * Filters input array of currencies |
||
39 | * @param string[] $currencies |
||
40 | * @return string[] |
||
41 | */ |
||
42 | private static function getUsedCurrencies(array $currencies): array |
||
43 | { |
||
44 | $filterCurrencies = Yii::$app->cache->getOrSet([__METHOD__, Yii::$app->user->id], function () { |
||
45 | return ArrayHelper::getColumn(Bill::perform('get-used-currencies', [], ['batch' => true]), 'name'); |
||
46 | }, 3600); |
||
47 | |||
48 | return array_filter($currencies, function (string $cur) use ($filterCurrencies) { |
||
49 | return in_array($cur, $filterCurrencies); |
||
50 | }, ARRAY_FILTER_USE_KEY); |
||
51 | } |
||
52 | } |
||
53 |
Let’s assume you have a class which uses late-static binding:
}
The code above will run fine in your PHP runtime. However, if you now create a sub-class and call the
getSomeVariable()
on that sub-class, you will receive a runtime error:In the case above, it makes sense to update
SomeClass
to useself
instead: