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.