diff --git a/php/src/GildedRose.php b/php/src/GildedRose.php index 2f560bb8..d5f2f87e 100644 --- a/php/src/GildedRose.php +++ b/php/src/GildedRose.php @@ -24,53 +24,54 @@ final class GildedRose public function updateQuality(): void { foreach ($this->items as $item) { + if ($item->name === 'Sulfuras, Hand of Ragnaros') { + continue; + } + if ($item->name === 'Aged Brie' || $item->name === 'Backstage passes to a TAFKAL80ETC concert') { if ($item->quality < 50) { $item->quality = $item->quality + 1; if ($item->name === 'Backstage passes to a TAFKAL80ETC concert') { if ($item->sellIn < 11) { - if ($item->quality < 50) { - $item->quality = $item->quality + 1; - } + $this->increaseQuality($item); } if ($item->sellIn < 6) { - if ($item->quality < 50) { - $item->quality = $item->quality + 1; - } + $this->increaseQuality($item); } } } } else { - if ($item->quality > 0) { - if ($item->name !== 'Sulfuras, Hand of Ragnaros') { - $item->quality = $item->quality - 1; - } - } + $this->decreaseQuality($item); } - if ($item->name === 'Sulfuras, Hand of Ragnaros') { - } else { - $item->sellIn = $item->sellIn - 1; - } + $item->sellIn = $item->sellIn - 1; if ($item->sellIn < 0) { if ($item->name === 'Aged Brie') { - if ($item->quality < 50) { - $item->quality = $item->quality + 1; - } + $this->increaseQuality($item); } else { if ($item->name === 'Backstage passes to a TAFKAL80ETC concert') { $item->quality = $item->quality - $item->quality; } else { - if ($item->quality > 0) { - if ($item->name === 'Sulfuras, Hand of Ragnaros') { - } else { - $item->quality = $item->quality - 1; - } - } + $this->decreaseQuality($item); } } } } } + + private function increaseQuality(Item &$item): void + { + if ($item->quality >= 50) { + return; + } + $item->quality += 1; + } + + private function decreaseQuality(Item &$item): void + { + if ($item->quality > 0) { + $item->quality -= 1; + } + } }