Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
5 / 5
CRAP
100.00% covered (success)
100.00%
1 / 1
UseTrait
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
5 / 5
7
100.00% covered (success)
100.00%
1 / 1
 addUse
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addUses
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
3
 hasUse
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 hasUses
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getUses
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2declare(strict_types=1);
3/**
4 * Pop PHP Framework (https://www.popphp.org/)
5 *
6 * @link       https://github.com/popphp/popphp-framework
7 * @author     Nick Sagona, III <dev@noladev.com>
8 * @copyright  Copyright (c) 2009-2027 NOLA Interactive, LLC.
9 * @license    https://www.popphp.org/license     New BSD License
10 */
11
12/**
13 * @namespace
14 */
15namespace Pop\Code\Generator\Traits;
16
17/**
18 * Use trait
19 *
20 * @category   Pop
21 * @package    Pop\Code
22 * @author     Nick Sagona, III <dev@noladev.com>
23 * @copyright  Copyright (c) 2009-2027 NOLA Interactive, LLC.
24 * @license    https://www.popphp.org/license     New BSD License
25 * @version    6.0.0
26 */
27trait UseTrait
28{
29
30    /**
31     * Array of namespaces to use
32     * @var array
33     */
34    protected array $uses = [];
35
36    /**
37     * Add a namespace to use
38     *
39     * @param  string  $use
40     * @param  ?string $as
41     * @return static
42     */
43    public function addUse(string $use, ?string $as = null): static
44    {
45        $this->uses[$use] = $as;
46        return $this;
47    }
48
49    /**
50     * Add namespaces to use
51     *
52     * @param  array $uses
53     * @return static
54     */
55    public function addUses(array $uses): static
56    {
57        foreach ($uses as $as => $use) {
58            if (!is_numeric($as)) {
59                $this->addUse($use, $as);
60            } else {
61                $this->addUse($use);
62            }
63        }
64        return $this;
65    }
66
67    /**
68     * Has use
69     *
70     * @param  string $use
71     * @return bool
72     */
73    public function hasUse(string $use): bool
74    {
75        return array_key_exists($use, $this->uses);
76    }
77
78    /**
79     * Has uses
80     *
81     * @return bool
82     */
83    public function hasUses(): bool
84    {
85        return (!empty($this->uses));
86    }
87
88    /**
89     * Get uses
90     *
91     * @return array
92     */
93    public function getUses(): array
94    {
95        return $this->uses;
96    }
97
98}