mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
146 lines
3.6 KiB
Markdown
146 lines
3.6 KiB
Markdown
# 高木追記
|
||
* php8のバイナリをgitにあげているので以下コマンドで一時的にパスを通してください
|
||
* export PATH=./bin:$PATH
|
||
* composer install
|
||
* composer test
|
||
*
|
||
* test fixtureの実行 日付を変更するとapprovedファイルと近くなる
|
||
* php fixtures/texttext_fixture.php
|
||
`days=2 -> days=31`
|
||
# GildedRose Kata - PHP Version
|
||
|
||
See the [top level readme](../README.md) for general information about this exercise. This is the PHP version of the
|
||
GildedRose Kata.
|
||
|
||
## Installation
|
||
|
||
The kata uses:
|
||
|
||
- [PHP 7.3 or 7.4 or 8.0+](https://www.php.net/downloads.php)
|
||
- [Composer](https://getcomposer.org)
|
||
|
||
Recommended:
|
||
|
||
- [Git](https://git-scm.com/downloads)
|
||
|
||
Clone the repository
|
||
|
||
```sh
|
||
git clone git@github.com:emilybache/GildedRose-Refactoring-Kata.git
|
||
```
|
||
|
||
or
|
||
|
||
```shell script
|
||
git clone https://github.com/emilybache/GildedRose-Refactoring-Kata.git
|
||
```
|
||
|
||
Install all the dependencies using composer
|
||
|
||
```shell script
|
||
cd ./GildedRose-Refactoring-Kata/php
|
||
composer install
|
||
```
|
||
|
||
## Dependencies
|
||
|
||
The project uses composer to install:
|
||
|
||
- [PHPUnit](https://phpunit.de/)
|
||
- [ApprovalTests.PHP](https://github.com/approvals/ApprovalTests.php)
|
||
- [PHPStan](https://github.com/phpstan/phpstan)
|
||
- [Easy Coding Standard (ECS)](https://github.com/symplify/easy-coding-standard)
|
||
- [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer/wiki)
|
||
|
||
## Folders
|
||
|
||
- `src` - contains the two classes:
|
||
- `Item.php` - this class should not be changed
|
||
- `GildedRose.php` - this class needs to be refactored, and the new feature added
|
||
- `tests` - contains the tests
|
||
- `GildedRoseTest.php` - starter test.
|
||
- Tip: ApprovalTests has been included as a dev dependency, see the PHP version of
|
||
the [Theatrical Players Refactoring Kata](https://github.com/emilybache/Theatrical-Players-Refactoring-Kata/)
|
||
for an example
|
||
- `Fixture`
|
||
- `texttest_fixture.php` this could be used by an ApprovalTests, or run from the command line
|
||
|
||
## 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:
|
||
|
||
```shell script
|
||
composer test
|
||
```
|
||
|
||
A Windows a batch file has been created, like an alias on Linux/Mac (e.g. `alias pu="composer test"`), the same
|
||
PHPUnit `composer test` can be run:
|
||
|
||
```shell script
|
||
pu
|
||
```
|
||
|
||
### Tests with Coverage Report
|
||
|
||
To run all test and generate a html coverage report run:
|
||
|
||
```shell script
|
||
composer test-coverage
|
||
```
|
||
|
||
The test-coverage report will be created in /builds, it is best viewed by opening /builds/**index.html** in your
|
||
browser.
|
||
|
||
## 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:
|
||
|
||
```shell script
|
||
composer check-cs
|
||
```
|
||
|
||
On Windows a batch file has been created, like an alias on Linux/Mac (e.g. `alias cc="composer check-cs"`), the same
|
||
PHPUnit `composer check-cs` can be run:
|
||
|
||
```shell script
|
||
cc
|
||
```
|
||
|
||
### Fix Code
|
||
|
||
ECS provides may code fixes, automatically, if advised to run --fix, the following script can be run:
|
||
|
||
```shell script
|
||
composer fix-cs
|
||
```
|
||
|
||
On Windows a batch file has been created, like an alias on Linux/Mac (e.g. `alias fc="composer fix-cs"`), the same
|
||
PHPUnit `composer fix-cs` can be run:
|
||
|
||
```shell script
|
||
fc
|
||
```
|
||
|
||
## Static Analysis
|
||
|
||
PHPStan is used to run static analysis checks:
|
||
|
||
```shell script
|
||
composer phpstan
|
||
```
|
||
|
||
On Windows a batch file has been created, like an alias on Linux/Mac (e.g. `alias ps="composer phpstan"`), the same
|
||
PHPUnit `composer phpstan` can be run:
|
||
|
||
```shell script
|
||
ps
|
||
```
|
||
|
||
**Happy coding**!
|