Issues (58)

Configuration/ConfigFactory.php (1 issue)

1
<?php
2
/*
3
 * This file is part of the Koded package.
4
 *
5
 * (c) Mihail Binev <[email protected]>
6
 *
7
 * Please view the LICENSE distributed with this source code
8
 * for the full copyright and license information.
9
 */
10
11
namespace Koded\Caching\Configuration;
12
13
use Koded\Stdlib\{Config, Configuration};
14
use Koded\Caching\CacheException;
15
use Throwable;
16
use function join;
17
use function ucfirst;
18
19
/**
20
 * Class ConfigFactory
21
 *
22
 * @property int|null $ttl Default Time-To-Live seconds for the cached items
23
 *
24
 */
25
class ConfigFactory extends Config
26
{
27 560
    public function __construct(array $parameters = [])
28
    {
29 560
        parent::__construct();
30 560
        $parameters && $this->import($parameters);
0 ignored issues
show
Bug Best Practice introduced by
The expression $parameters of type array is implicitly converted to a boolean; are you sure this is intended? If so, consider using ! empty($expr) instead to make it clear that you intend to check for an array without elements.

This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.

Consider making the comparison explicit by using empty(..) or ! empty(...) instead.

Loading history...
31
    }
32
33 560
    public function build(string $context): Configuration
34
    {
35
        try {
36 560
            $class = join('\\', [__NAMESPACE__, ucfirst($context) . 'Configuration']);
37 560
            return new $class($this->toArray());
38
        // @codeCoverageIgnoreStart
39
        } catch (CacheException $e) {
40
            throw $e;
41
        // @codeCoverageIgnoreEnd
42 125
        } catch (Throwable) {
43 125
            return new class($this->toArray()) extends CacheConfiguration {};
44
        }
45
    }
46
}
47