mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 04:12:13 +00:00
Removed PHP5 (no longer supported) Renamed PHP7 to PHP - consistent with other kata Added the same helpers as other PHP Kata Updated the code to PHP7.2+ standard Didn't change GildedRose updateQuality method Updated GildedRoseTest (still failing) Added ApprovalTest (passing) - same text file as texttests / ThirtyDays / stdout.gr (only renamed).
70 lines
2.2 KiB
PHP
70 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace GildedRose;
|
|
|
|
final class GildedRose
|
|
{
|
|
/**
|
|
* @var Item[]
|
|
*/
|
|
private $items;
|
|
|
|
public function __construct(array $items)
|
|
{
|
|
$this->items = $items;
|
|
}
|
|
|
|
public function updateQuality(): void
|
|
{
|
|
foreach ($this->items as $item) {
|
|
if ($item->name != 'Aged Brie' and $item->name != 'Backstage passes to a TAFKAL80ETC concert') {
|
|
if ($item->quality > 0) {
|
|
if ($item->name != 'Sulfuras, Hand of Ragnaros') {
|
|
$item->quality = $item->quality - 1;
|
|
}
|
|
}
|
|
} else {
|
|
if ($item->quality < 50) {
|
|
$item->quality = $item->quality + 1;
|
|
if ($item->name == 'Backstage passes to a TAFKAL80ETC concert') {
|
|
if ($item->sell_in < 11) {
|
|
if ($item->quality < 50) {
|
|
$item->quality = $item->quality + 1;
|
|
}
|
|
}
|
|
if ($item->sell_in < 6) {
|
|
if ($item->quality < 50) {
|
|
$item->quality = $item->quality + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($item->name != 'Sulfuras, Hand of Ragnaros') {
|
|
$item->sell_in = $item->sell_in - 1;
|
|
}
|
|
|
|
if ($item->sell_in < 0) {
|
|
if ($item->name != 'Aged Brie') {
|
|
if ($item->name != 'Backstage passes to a TAFKAL80ETC concert') {
|
|
if ($item->quality > 0) {
|
|
if ($item->name != 'Sulfuras, Hand of Ragnaros') {
|
|
$item->quality = $item->quality - 1;
|
|
}
|
|
}
|
|
} else {
|
|
$item->quality = $item->quality - $item->quality;
|
|
}
|
|
} else {
|
|
if ($item->quality < 50) {
|
|
$item->quality = $item->quality + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|