3.4 KiB
GildedRose Kata - PHP Version
Installation
The kata uses:
Recommended:
See GitHub cloning a repository for details on how to create a local copy of this project on your computer.
git clone git@github.com:thang-tran-nfq/GildedRose-Refactoring-Kata.git
or
git clone https://github.com/thang-tran-nfq/GildedRose-Refactoring-Kata.git
Setup docker-compose
docker-compose up -d
Exec the docker container
docker exec -it php-cli bash
Install all the dependencies using composer
cd ./GildedRose-Refactoring-Kata
composer install
Dependencies
The project uses composer to install:
Folders
src- contains the two classes:Item.php- this class should not be changedGildedRose.php- this class needs to be refactored, and the new feature addedItems- This folder contains all Items ClassAbstract- This folder store Abstract of all Item ClassInterface- This folder store Interface of all Item ClassFactory- This folder store Factory, create Item instanceAgedBrieItem.phpBackstagePassItem.phpConjuredItem.phpNormalItem.phpSulfurasItem.php
tests- contains the testsGildedRoseTest.php- starter test.- Tip: ApprovalTests has been included as a dev dependency, see the PHP version of the Theatrical Players Refactoring Kata for an example
Fixturetexttest_fixture.phpthis could be used by an ApprovalTests, or run from the command line
Fixture
To run the fixture from the php directory:
php .\fixtures\texttest_fixture.php 10
Change 10 to the required days.
Testing
PHPUnit is configured for testing, a composer script has been provided. To run the unit tests, from the root of the PHP project run:
composer tests
Tests with Coverage Report
To run all test and generate a html coverage report run:
composer test-coverage
The test-coverage report will be created in /builds, it is best viewed by opening /builds/index.html in your browser.
The XDEbug extension is required for generating the coverage report.
Code Standard
Easy Coding Standard (ECS) is configured for style and code standards, PSR-12 is used. The current code is not upto standard!
Check Code
To check code, but not fix errors:
composer check-cs
Fix Code
ECS provides may code fixes, automatically, if advised to run --fix, the following script can be run:
composer fix-cs
Static Analysis
PHPStan is used to run static analysis checks:
composer phpstan
Happy coding! test 1