| Conditions | 41 |
| Paths | 56 |
| Total Lines | 143 |
| Code Lines | 99 |
| Lines | 0 |
| Ratio | 0 % |
| Tests | 88 |
| CRAP Score | 42.7838 |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 234 | 1 | private function renderDateRange($differentParts, DateTime $from, DateTime $to, $delim) |
|
|
1 ignored issue
–
show
|
|||
| 235 | { |
||
| 236 | 1 | $ret = ""; |
|
| 237 | 1 | $dateParts_ = []; |
|
| 238 | switch ($differentParts) { |
||
| 239 | 1 | case self::DATE_RANGE_STATE_YEAR: |
|
| 240 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 241 | 1 | if (strpos($key, "year") !== false) { |
|
| 242 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 243 | } |
||
| 244 | 1 | if (strpos($key, "month") !== false) { |
|
| 245 | 1 | $day = !empty($d = $from->getMonth()) ? $d : ""; |
|
| 246 | 1 | $ret .= $day; |
|
| 247 | } |
||
| 248 | 1 | if (strpos($key, "day") !== false) { |
|
| 249 | 1 | $day = !empty($d = $from->getDay()) ? $datePart->render($from, $this) : ""; |
|
| 250 | 1 | $ret .= $day; |
|
| 251 | } |
||
| 252 | } |
||
| 253 | 1 | break; |
|
| 254 | 1 | case self::DATE_RANGE_STATE_MONTH: |
|
| 255 | /** |
||
|
1 ignored issue
–
show
|
|||
| 256 | * @var string $key |
||
| 257 | * @var DatePart $datePart |
||
| 258 | */ |
||
| 259 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 260 | 1 | if (strpos($key, "year") !== false) { |
|
| 261 | 1 | $ret .= $datePart->render($from, $this); |
|
| 262 | } |
||
| 263 | 1 | if (strpos($key, "month")) { |
|
| 264 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 265 | } |
||
| 266 | 1 | if (strpos($key, "day") !== false) { |
|
| 267 | 1 | $day = !empty($d = $from->getDay()) ? $datePart->render($from, $this) : ""; |
|
| 268 | 1 | $ret .= $day; |
|
| 269 | } |
||
| 270 | } |
||
| 271 | 1 | break; |
|
| 272 | 1 | case self::DATE_RANGE_STATE_DAY: |
|
| 273 | /** |
||
|
1 ignored issue
–
show
|
|||
| 274 | * @var string $key |
||
| 275 | * @var DatePart $datePart |
||
| 276 | */ |
||
| 277 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 278 | 1 | if (strpos($key, "year") !== false) { |
|
| 279 | 1 | $ret .= $datePart->render($from, $this); |
|
| 280 | } |
||
| 281 | 1 | if (strpos($key, "month") !== false) { |
|
| 282 | 1 | $ret .= $datePart->render($from, $this); |
|
| 283 | } |
||
| 284 | 1 | if (strpos($key, "day")) { |
|
| 285 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 286 | } |
||
| 287 | } |
||
| 288 | 1 | break; |
|
| 289 | 1 | case self::DATE_RANGE_STATE_YEARMONTHDAY: |
|
| 290 | 1 | $i = 0; |
|
| 291 | 1 | foreach ($this->dateParts as $datePart) { |
|
| 292 | 1 | if ($i === $this->dateParts->count() - 1) { |
|
| 293 | 1 | $ret .= $datePart->renderPrefix(); |
|
| 294 | 1 | $ret .= $datePart->renderWithoutAffixes($from, $this); |
|
| 295 | } else { |
||
| 296 | 1 | $ret .= $datePart->render($from, $this); |
|
| 297 | } |
||
| 298 | 1 | ++$i; |
|
| 299 | } |
||
| 300 | 1 | $ret .= $delim; |
|
| 301 | 1 | $i = 0; |
|
| 302 | 1 | foreach ($this->dateParts as $datePart) { |
|
| 303 | 1 | if ($i == 0) { |
|
| 304 | 1 | $ret .= $datePart->renderWithoutAffixes($to, $this); |
|
| 305 | 1 | $ret .= $datePart->renderSuffix(); |
|
| 306 | } else { |
||
| 307 | 1 | $ret .= $datePart->render($to, $this); |
|
| 308 | } |
||
| 309 | 1 | ++$i; |
|
| 310 | } |
||
| 311 | 1 | break; |
|
| 312 | 1 | case self::DATE_RANGE_STATE_YEARMONTH: |
|
| 313 | 1 | $dp = $this->dateParts->toArray(); |
|
| 314 | 1 | $i = 0; |
|
| 315 | 1 | $dateParts_ = []; |
|
| 316 | 1 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
|
| 317 | 1 | if (strpos($key, "year") !== false || strpos($key, "month") !== false) { |
|
| 318 | 1 | $dateParts_["yearmonth"][] = $datePart; |
|
| 319 | } |
||
| 320 | 1 | if (strpos($key, "day") !== false) { |
|
| 321 | 1 | $dateParts_["day"] = $datePart; |
|
| 322 | } |
||
| 323 | 1 | }); |
|
| 324 | 1 | break; |
|
| 325 | 1 | case self::DATE_RANGE_STATE_YEARDAY: |
|
| 326 | $dp = $this->dateParts->toArray(); |
||
| 327 | $i = 0; |
||
| 328 | $dateParts_ = []; |
||
| 329 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
||
| 330 | if (strpos($key, "year") !== false || strpos($key, "day") !== false) { |
||
| 331 | $dateParts_["yearday"][] = $datePart; |
||
| 332 | } |
||
| 333 | if (strpos($key, "month") !== false) { |
||
| 334 | $dateParts_["month"] = $datePart; |
||
| 335 | } |
||
| 336 | }); |
||
| 337 | break; |
||
| 338 | 1 | case self::DATE_RANGE_STATE_MONTHDAY: |
|
| 339 | 1 | $dp = $this->dateParts->toArray(); |
|
| 340 | 1 | $i = 0; |
|
| 341 | 1 | $dateParts_ = []; |
|
| 342 | 1 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
|
| 343 | //$bit = sprintf("%03d", decbin($differentParts)); |
||
| 344 | 1 | if (strpos($key, "month") !== false || strpos($key, "day") !== false) { |
|
| 345 | 1 | $dateParts_["monthday"][] = $datePart; |
|
| 346 | } |
||
| 347 | 1 | if (strpos($key, "year") !== false) { |
|
| 348 | 1 | $dateParts_["year"] = $datePart; |
|
| 349 | } |
||
| 350 | 1 | }); |
|
| 351 | 1 | break; |
|
| 352 | } |
||
| 353 | switch ($differentParts) { |
||
| 354 | 1 | case self::DATE_RANGE_STATE_YEARMONTH: |
|
| 355 | 1 | case self::DATE_RANGE_STATE_YEARDAY: |
|
| 356 | 1 | case self::DATE_RANGE_STATE_MONTHDAY: |
|
| 357 | /** |
||
|
1 ignored issue
–
show
|
|||
| 358 | * @var $key |
||
| 359 | * @var DatePart $datePart */ |
||
|
1 ignored issue
–
show
|
|||
| 360 | 1 | foreach ($dateParts_ as $key => $datePart) { |
|
| 361 | 1 | if (is_array($datePart)) { |
|
| 362 | |||
| 363 | 1 | $f = $datePart[0]->render($from, $this); |
|
| 364 | 1 | $f .= $datePart[1]->renderPrefix(); |
|
| 365 | 1 | $f .= $datePart[1]->renderWithoutAffixes($from, $this); |
|
| 366 | 1 | $t = $datePart[0]->renderWithoutAffixes($to, $this); |
|
| 367 | 1 | $t .= $datePart[0]->renderSuffix(); |
|
| 368 | 1 | $t .= $datePart[1]->render($to, $this); |
|
| 369 | 1 | $ret .= $f . $delim . $t; |
|
| 370 | } else { |
||
| 371 | 1 | $ret .= $datePart->render($from, $this); |
|
| 372 | } |
||
| 373 | } |
||
| 374 | 1 | break; |
|
| 375 | } |
||
| 376 | 1 | return $ret; |
|
| 377 | } |
||
| 542 |