Skip to content

PHP skeleton for doing coding katas (PHPUnit, mockery, phpspec and prophecy)

Notifications You must be signed in to change notification settings

waytohealth/php-kata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kata/php

PHP skeleton for doing coding katas

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).

Practicing a kata

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

TestCase examples

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.

About

PHP skeleton for doing coding katas (PHPUnit, mockery, phpspec and prophecy)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%