| 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 |
||
| 229 | 1 | private function renderDateRange($differentParts, DateTime $from, DateTime $to, $delim) |
|
|
1 ignored issue
–
show
|
|||
| 230 | { |
||
| 231 | 1 | $ret = ""; |
|
| 232 | 1 | $dateParts_ = []; |
|
| 233 | switch ($differentParts) { |
||
| 234 | 1 | case self::DATE_RANGE_STATE_YEAR: |
|
| 235 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 236 | 1 | if (strpos($key, "year") !== false) { |
|
| 237 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 238 | } |
||
| 239 | 1 | if (strpos($key, "month") !== false) { |
|
| 240 | 1 | $day = !empty($d = $from->getMonth()) ? $d : ""; |
|
| 241 | 1 | $ret .= $day; |
|
| 242 | } |
||
| 243 | 1 | if (strpos($key, "day") !== false) { |
|
| 244 | 1 | $day = !empty($d = $from->getDay()) ? $datePart->render($from, $this) : ""; |
|
| 245 | 1 | $ret .= $day; |
|
| 246 | } |
||
| 247 | } |
||
| 248 | 1 | break; |
|
| 249 | 1 | case self::DATE_RANGE_STATE_MONTH: |
|
| 250 | /** |
||
|
1 ignored issue
–
show
|
|||
| 251 | * @var string $key |
||
| 252 | * @var DatePart $datePart |
||
| 253 | */ |
||
| 254 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 255 | 1 | if (strpos($key, "year") !== false) { |
|
| 256 | 1 | $ret .= $datePart->render($from, $this); |
|
| 257 | } |
||
| 258 | 1 | if (strpos($key, "month")) { |
|
| 259 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 260 | } |
||
| 261 | 1 | if (strpos($key, "day") !== false) { |
|
| 262 | 1 | $day = !empty($d = $from->getDay()) ? $datePart->render($from, $this) : ""; |
|
| 263 | 1 | $ret .= $day; |
|
| 264 | } |
||
| 265 | } |
||
| 266 | 1 | break; |
|
| 267 | 1 | case self::DATE_RANGE_STATE_DAY: |
|
| 268 | /** |
||
|
1 ignored issue
–
show
|
|||
| 269 | * @var string $key |
||
| 270 | * @var DatePart $datePart |
||
| 271 | */ |
||
| 272 | 1 | foreach ($this->dateParts as $key => $datePart) { |
|
| 273 | 1 | if (strpos($key, "year") !== false) { |
|
| 274 | 1 | $ret .= $datePart->render($from, $this); |
|
| 275 | } |
||
| 276 | 1 | if (strpos($key, "month") !== false) { |
|
| 277 | 1 | $ret .= $datePart->render($from, $this); |
|
| 278 | } |
||
| 279 | 1 | if (strpos($key, "day")) { |
|
| 280 | 1 | $ret .= $this->renderOneRangePart($datePart, $from, $to, $delim); |
|
| 281 | } |
||
| 282 | } |
||
| 283 | 1 | break; |
|
| 284 | 1 | case self::DATE_RANGE_STATE_YEARMONTHDAY: |
|
| 285 | 1 | $i = 0; |
|
| 286 | 1 | foreach ($this->dateParts as $datePart) { |
|
| 287 | 1 | if ($i === $this->dateParts->count() - 1) { |
|
| 288 | 1 | $ret .= $datePart->renderPrefix(); |
|
| 289 | 1 | $ret .= $datePart->renderWithoutAffixes($from, $this); |
|
| 290 | } else { |
||
| 291 | 1 | $ret .= $datePart->render($from, $this); |
|
| 292 | } |
||
| 293 | 1 | ++$i; |
|
| 294 | } |
||
| 295 | 1 | $ret .= $delim; |
|
| 296 | 1 | $i = 0; |
|
| 297 | 1 | foreach ($this->dateParts as $datePart) { |
|
| 298 | 1 | if ($i == 0) { |
|
| 299 | 1 | $ret .= $datePart->renderWithoutAffixes($to, $this); |
|
| 300 | 1 | $ret .= $datePart->renderSuffix(); |
|
| 301 | } else { |
||
| 302 | 1 | $ret .= $datePart->render($to, $this); |
|
| 303 | } |
||
| 304 | 1 | ++$i; |
|
| 305 | } |
||
| 306 | 1 | break; |
|
| 307 | 1 | case self::DATE_RANGE_STATE_YEARMONTH: |
|
| 308 | 1 | $dp = $this->dateParts->toArray(); |
|
| 309 | 1 | $i = 0; |
|
| 310 | 1 | $dateParts_ = []; |
|
| 311 | 1 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
|
| 312 | 1 | if (strpos($key, "year") !== false || strpos($key, "month") !== false) { |
|
| 313 | 1 | $dateParts_["yearmonth"][] = $datePart; |
|
| 314 | } |
||
| 315 | 1 | if (strpos($key, "day") !== false) { |
|
| 316 | 1 | $dateParts_["day"] = $datePart; |
|
| 317 | } |
||
| 318 | 1 | }); |
|
| 319 | 1 | break; |
|
| 320 | 1 | case self::DATE_RANGE_STATE_YEARDAY: |
|
| 321 | $dp = $this->dateParts->toArray(); |
||
| 322 | $i = 0; |
||
| 323 | $dateParts_ = []; |
||
| 324 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
||
| 325 | if (strpos($key, "year") !== false || strpos($key, "day") !== false) { |
||
| 326 | $dateParts_["yearday"][] = $datePart; |
||
| 327 | } |
||
| 328 | if (strpos($key, "month") !== false) { |
||
| 329 | $dateParts_["month"] = $datePart; |
||
| 330 | } |
||
| 331 | }); |
||
| 332 | break; |
||
| 333 | 1 | case self::DATE_RANGE_STATE_MONTHDAY: |
|
| 334 | 1 | $dp = $this->dateParts->toArray(); |
|
| 335 | 1 | $i = 0; |
|
| 336 | 1 | $dateParts_ = []; |
|
| 337 | 1 | array_walk($dp, function($datePart, $key) use (&$i, &$dateParts_, $differentParts) { |
|
| 338 | //$bit = sprintf("%03d", decbin($differentParts)); |
||
| 339 | 1 | if (strpos($key, "month") !== false || strpos($key, "day") !== false) { |
|
| 340 | 1 | $dateParts_["monthday"][] = $datePart; |
|
| 341 | } |
||
| 342 | 1 | if (strpos($key, "year") !== false) { |
|
| 343 | 1 | $dateParts_["year"] = $datePart; |
|
| 344 | } |
||
| 345 | 1 | }); |
|
| 346 | 1 | break; |
|
| 347 | } |
||
| 348 | switch ($differentParts) { |
||
| 349 | 1 | case self::DATE_RANGE_STATE_YEARMONTH: |
|
| 350 | 1 | case self::DATE_RANGE_STATE_YEARDAY: |
|
| 351 | 1 | case self::DATE_RANGE_STATE_MONTHDAY: |
|
| 352 | /** |
||
|
1 ignored issue
–
show
|
|||
| 353 | * @var $key |
||
| 354 | * @var DatePart $datePart */ |
||
|
1 ignored issue
–
show
|
|||
| 355 | 1 | foreach ($dateParts_ as $key => $datePart) { |
|
| 356 | 1 | if (is_array($datePart)) { |
|
| 357 | |||
| 358 | 1 | $f = $datePart[0]->render($from, $this); |
|
| 359 | 1 | $f .= $datePart[1]->renderPrefix(); |
|
| 360 | 1 | $f .= $datePart[1]->renderWithoutAffixes($from, $this); |
|
| 361 | 1 | $t = $datePart[0]->renderWithoutAffixes($to, $this); |
|
| 362 | 1 | $t .= $datePart[0]->renderSuffix(); |
|
| 363 | 1 | $t .= $datePart[1]->render($to, $this); |
|
| 364 | 1 | $ret .= $f . $delim . $t; |
|
| 365 | } else { |
||
| 366 | 1 | $ret .= $datePart->render($from, $this); |
|
| 367 | } |
||
| 368 | } |
||
| 369 | 1 | break; |
|
| 370 | } |
||
| 371 | 1 | return $ret; |
|
| 372 | } |
||
| 515 | } |