This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace Andegna\Operations; |
||
4 | |||
5 | use Andegna\Converter\ToJdnConverter; |
||
6 | use Andegna\DateTime; |
||
7 | use DateInterval; |
||
8 | use DateTimeZone; |
||
9 | |||
10 | /** |
||
11 | * Processor trait <br /> |
||
12 | * works on dateTime property. |
||
13 | */ |
||
14 | trait Processor |
||
15 | { |
||
16 | /** |
||
17 | * @param mixed $dateTime |
||
18 | * |
||
19 | * @return mixed |
||
20 | */ |
||
21 | 8 | protected function fixForChaining($dateTime = false) |
|
22 | { |
||
23 | 8 | if ($dateTime === false) { |
|
24 | return $dateTime; |
||
25 | } |
||
26 | |||
27 | 8 | $this->updateComputedFields(); |
|
0 ignored issues
–
show
|
|||
28 | |||
29 | 8 | return $this; |
|
30 | } |
||
31 | |||
32 | /** |
||
33 | * Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object. |
||
34 | * |
||
35 | * @param DateInterval $interval |
||
36 | * |
||
37 | * @return DateTime|bool |
||
38 | */ |
||
39 | 1 | public function add(DateInterval $interval) |
|
40 | { |
||
41 | 1 | return $this->fixForChaining($this->dateTime->add($interval)); |
|
0 ignored issues
–
show
The property
dateTime does not exist. Did you maybe forget to declare it?
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code: class MyClass { }
$x = new MyClass();
$x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: class MyClass {
public $foo;
}
$x = new MyClass();
$x->foo = true;
![]() |
|||
42 | } |
||
43 | |||
44 | /** |
||
45 | * Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object. |
||
46 | * |
||
47 | * @param DateInterval $interval |
||
48 | * |
||
49 | * @return DateTime|bool |
||
50 | */ |
||
51 | 8 | public function sub(DateInterval $interval) |
|
52 | { |
||
53 | 8 | return$this->fixForChaining($this->dateTime->sub($interval)); |
|
54 | } |
||
55 | |||
56 | /** |
||
57 | * Alters the timestamp. |
||
58 | * |
||
59 | * @param $modify |
||
60 | * |
||
61 | * @return DateTime|bool |
||
62 | */ |
||
63 | 2 | public function modify($modify) |
|
64 | { |
||
65 | 2 | return $this->fixForChaining($this->dateTime->modify($modify)); |
|
66 | } |
||
67 | |||
68 | /** |
||
69 | * Returns the difference between two DateTime objects. |
||
70 | * |
||
71 | * @param $datetime |
||
72 | * @param bool $absolute |
||
73 | * |
||
74 | * @return DateInterval |
||
75 | */ |
||
76 | 2 | public function diff($datetime, $absolute = false) |
|
77 | { |
||
78 | 2 | if ($datetime instanceof DateTime) { |
|
79 | 2 | return $this->dateTime->diff($datetime->toGregorian(), $absolute); |
|
80 | } |
||
81 | |||
82 | 1 | return $this->dateTime->diff($datetime, $absolute); |
|
83 | } |
||
84 | |||
85 | /** |
||
86 | * Sets the date. |
||
87 | * |
||
88 | * @param $year |
||
89 | * @param $month |
||
90 | * @param $day |
||
91 | * |
||
92 | * @return DateTime |
||
93 | */ |
||
94 | 1 | public function setDate($year, $month, $day) |
|
95 | { |
||
96 | 1 | $jdn = (new ToJdnConverter($day, $month, $year))->getJdn(); |
|
97 | |||
98 | 1 | $gregorian = jdtogregorian($jdn); |
|
99 | |||
100 | 1 | list($month, $day, $year) = explode('/', $gregorian); |
|
101 | |||
102 | 1 | $this->fixForChaining($this->dateTime->setDate((int) $year, (int) $month, (int) $day)); |
|
103 | 1 | } |
|
104 | |||
105 | /** |
||
106 | * Sets the time. |
||
107 | * |
||
108 | * @param $hour |
||
109 | * @param $minute |
||
110 | * @param int $second |
||
111 | * |
||
112 | * @return DateTime |
||
113 | */ |
||
114 | 1 | public function setTime($hour, $minute, $second = 0) |
|
115 | { |
||
116 | 1 | return $this->fixForChaining($this->dateTime->setTime($hour, $minute, $second)); |
|
117 | } |
||
118 | |||
119 | /** |
||
120 | * Sets the date and time based on an Unix timestamp. |
||
121 | * |
||
122 | * @param $unixtimestamp |
||
123 | * |
||
124 | * @return DateTime |
||
125 | */ |
||
126 | 1 | public function setTimestamp($unixtimestamp) |
|
127 | { |
||
128 | 1 | return $this->fixForChaining($this->dateTime->setTimestamp($unixtimestamp)); |
|
129 | } |
||
130 | |||
131 | /** |
||
132 | * Sets the time zone for the DateTime object. |
||
133 | * |
||
134 | * @param $timezone |
||
135 | * |
||
136 | * @return DateTime |
||
137 | */ |
||
138 | 1 | public function setTimezone($timezone) |
|
139 | { |
||
140 | 1 | return $this->fixForChaining($this->dateTime->setTimezone($timezone)); |
|
141 | } |
||
142 | |||
143 | /** |
||
144 | * Returns the timezone offset. |
||
145 | * |
||
146 | * @return int |
||
147 | */ |
||
148 | 1 | public function getOffset() |
|
149 | { |
||
150 | 1 | return $this->dateTime->getOffset(); |
|
151 | } |
||
152 | |||
153 | /** |
||
154 | * Return time zone relative to given DateTime. |
||
155 | * |
||
156 | * @return DateTimeZone |
||
157 | */ |
||
158 | 4 | public function getTimezone() |
|
159 | { |
||
160 | 4 | return $this->dateTime->getTimezone(); |
|
161 | } |
||
162 | |||
163 | /** |
||
164 | * The __wakeup handler. |
||
165 | */ |
||
166 | 1 | public function __wakeup() |
|
167 | { |
||
168 | 1 | return $this->dateTime->__wakeup(); |
|
169 | } |
||
170 | } |
||
171 |
This check looks for methods that are used by a trait but not required by it.
To illustrate, let’s look at the following code example
The trait
Idable
provides a methodequalsId
that in turn relies on the methodgetId()
. If this method does not exist on a class mixing in this trait, the method will fail.Adding the
getId()
as an abstract method to the trait will make sure it is available.