Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
9 / 9
CRAP
100.00% covered (success)
100.00%
1 / 1
ConsoleTrait
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
9 / 9
9
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 application
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 console
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getApplication
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getConsole
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setApplication
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setConsole
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 hasApplication
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 hasConsole
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 <nick@popphp.org>
8 * @copyright  Copyright (c) 2009-2026 Nick Sagona, III
9 * @license    https://www.popphp.org/license     New BSD License
10 */
11
12/**
13 * @namespace
14 */
15namespace Pop\Dispatch;
16
17use Pop\Application;
18use Pop\Console\Console;
19
20/**
21 * Pop console trait
22 *
23 * @category   Pop
24 * @package    Pop\Dispatch
25 * @author     Nick Sagona, III <nick@popphp.org>
26 * @copyright  Copyright (c) 2009-2026 Nick Sagona, III
27 * @license    https://www.popphp.org/license     New BSD License
28 * @version    5.0.0
29 */
30trait ConsoleTrait
31{
32
33    /**
34     * Application object
35     * @var ?Application
36     */
37    protected ?Application $application = null;
38
39    /**
40     * Console object
41     * @var ?Console
42     */
43    protected ?Console $console = null;
44
45    /**
46     * Constructor for the controller
47     *
48     * @param  ?Application $application
49     * @param  Console      $console
50     */
51    public function __construct(?Application $application = null, Console $console = new Console(120))
52    {
53        $this->application = $application;
54        $this->console     = $console;
55    }
56
57    /**
58     * Get application object (alias)
59     *
60     * @return ?Application
61     */
62    public function application(): ?Application
63    {
64        return $this->application;
65    }
66
67    /**
68     * Get console object (alias)
69     *
70     * @return Console
71     */
72    public function console(): Console
73    {
74        return $this->console;
75    }
76
77    /**
78     * Get application object
79     *
80     * @return ?Application
81     */
82    public function getApplication(): ?Application
83    {
84        return $this->application;
85    }
86
87    /**
88     * Get console object
89     *
90     * @return ?Console
91     */
92    public function getConsole(): ?Console
93    {
94        return $this->console;
95    }
96
97    /**
98     * Set application object
99     *
100     * @param  Application $application
101     * @return static
102     */
103    public function setApplication(Application $application): static
104    {
105        $this->application = $application;
106        return $this;
107    }
108
109    /**
110     * Set console object
111     *
112     * @param  Console $console
113     * @return static
114     */
115    public function setConsole(Console $console = new Console(120)): static
116    {
117        $this->console = $console;
118        return $this;
119    }
120
121    /**
122     * Has application object
123     *
124     * @return bool
125     */
126    public function hasApplication(): bool
127    {
128        return !empty($this->application);
129    }
130
131    /**
132     * Has console object
133     *
134     * @return bool
135     */
136    public function hasConsole(): bool
137    {
138        return !empty($this->console);
139    }
140
141}