Code Kata is a term coined by Dave Thomas, co-author of the book The Pragmatic Programmer, in a bow to the Japanese concept of kata in the martial arts. A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition. As of October 2011, Dave Thomas has published 21 different katas.
You can find some to start practicing here.
When you do programming katas, you use TDD. That's why I have included PHPUnit, Mockery, PHPSpec and Prophecy as composer dependencies. Choose the testing framework you feel more comfortable (or play with both).
Let's imagine you want to practice "Bowling game kata". Details about this kata can be found here.
You will need composer.
curl -sS https://getcomposer.org/installer | php
Then, use "create-project" command to clone this project as a template and create a new one in your computer.
php composer.phar create-project kata/php bowling-kata dev-master
Then add your classes to src/Kata
and your test cases to
src/Kata/Tests
and run php bin/phpunit
to run your tests.
php bin/phpunit
If you run php bin/phpunit
you will see the following output.
PHPUnit 9.5.20
... 3 / 3 (100%)
Time: 00:00.003, Memory: 6.00 MB
OK (3 tests, 3 assertions)
That's because you will find one class and its TestCase in the project in order to help you. You can delete them.
Adder
is a class that adds two numbers and AdderTest
tests that.