Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
24 | abstract class SamlMessage extends AbstractSamlModel |
||
25 | { |
||
26 | /** @var string */ |
||
27 | protected $id; |
||
28 | |||
29 | /** @var string */ |
||
30 | protected $version = SamlConstants::VERSION_20; |
||
31 | |||
32 | /** @var int */ |
||
33 | protected $issueInstant; |
||
34 | |||
35 | /** @var string|null */ |
||
36 | protected $destination; |
||
37 | |||
38 | /** @var Issuer|null */ |
||
39 | protected $issuer; |
||
40 | |||
41 | /** @var string|null */ |
||
42 | protected $consent; |
||
43 | |||
44 | /** @var Signature|null */ |
||
45 | protected $signature; |
||
46 | |||
47 | /** @var string|null */ |
||
48 | protected $relayState; |
||
49 | |||
50 | /** |
||
51 | * @param string $xml |
||
52 | * @param DeserializationContext $context |
||
53 | * |
||
54 | * @return AuthnRequest|LogoutRequest|LogoutResponse|Response|SamlMessage |
||
55 | * |
||
56 | * @throws \Exception |
||
57 | */ |
||
58 | 11 | public static function fromXML($xml, DeserializationContext $context) |
|
109 | |||
110 | /** |
||
111 | * @param string $id |
||
112 | * |
||
113 | * @return SamlMessage |
||
114 | */ |
||
115 | 30 | public function setID($id) |
|
121 | |||
122 | /** |
||
123 | * @return string |
||
124 | */ |
||
125 | 28 | public function getID() |
|
129 | |||
130 | /** |
||
131 | * @param int|string|\DateTime $issueInstant |
||
132 | * |
||
133 | * @return SamlMessage |
||
134 | */ |
||
135 | 29 | public function setIssueInstant($issueInstant) |
|
141 | |||
142 | /** |
||
143 | * @return int|null |
||
144 | */ |
||
145 | 3 | public function getIssueInstantTimestamp() |
|
149 | |||
150 | /** |
||
151 | * @return string|null |
||
152 | */ |
||
153 | 27 | public function getIssueInstantString() |
|
161 | |||
162 | /** |
||
163 | * @return \DateTime|null |
||
164 | */ |
||
165 | public function getIssueInstantDateTime() |
||
173 | |||
174 | /** |
||
175 | * @param string $version |
||
176 | * |
||
177 | * @return SamlMessage |
||
178 | */ |
||
179 | 16 | public function setVersion($version) |
|
185 | |||
186 | /** |
||
187 | * @return string |
||
188 | */ |
||
189 | 26 | public function getVersion() |
|
193 | |||
194 | /** |
||
195 | * @param null|string $destination |
||
196 | * |
||
197 | * @return SamlMessage |
||
198 | */ |
||
199 | 27 | public function setDestination($destination) |
|
205 | |||
206 | /** |
||
207 | * @return null|string |
||
208 | */ |
||
209 | 33 | public function getDestination() |
|
213 | |||
214 | /** |
||
215 | * @param Issuer|null $issuer |
||
216 | * |
||
217 | * @return SamlMessage |
||
218 | */ |
||
219 | 30 | public function setIssuer(Issuer $issuer = null) |
|
225 | |||
226 | /** |
||
227 | * @return \LightSaml\Model\Assertion\NameID|null |
||
228 | */ |
||
229 | 36 | public function getIssuer() |
|
233 | |||
234 | /** |
||
235 | * @param null|string $consent |
||
236 | * |
||
237 | * @return StatusResponse |
||
238 | */ |
||
239 | 4 | public function setConsent($consent) |
|
245 | |||
246 | /** |
||
247 | * @return null|string |
||
248 | */ |
||
249 | 22 | public function getConsent() |
|
253 | |||
254 | /** |
||
255 | * @param Signature|null $signature |
||
256 | * |
||
257 | * @return SamlMessage |
||
258 | */ |
||
259 | 24 | public function setSignature(Signature $signature = null) |
|
265 | |||
266 | /** |
||
267 | * @return Signature|null |
||
268 | */ |
||
269 | 30 | public function getSignature() |
|
273 | |||
274 | /** |
||
275 | * @param null|string $relayState |
||
276 | * |
||
277 | * @return SamlMessage |
||
278 | */ |
||
279 | 6 | public function setRelayState($relayState) |
|
285 | |||
286 | /** |
||
287 | * @return null|string |
||
288 | */ |
||
289 | 10 | public function getRelayState() |
|
293 | |||
294 | /** |
||
295 | * @param \DOMNode $parent |
||
296 | * @param SerializationContext $context |
||
297 | * |
||
298 | * @return void |
||
299 | */ |
||
300 | 21 | public function serialize(\DOMNode $parent, SerializationContext $context) |
|
306 | |||
307 | /** |
||
308 | * @param \DOMNode $node |
||
309 | * @param DeserializationContext $context |
||
310 | */ |
||
311 | 22 | View Code Duplication | public function deserialize(\DOMNode $node, DeserializationContext $context) |
320 | } |
||
321 |
When comparing two booleans, it is generally considered safer to use the strict comparison operator.