PHPackages                             florianwolters/code-kata - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. florianwolters/code-kata

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

florianwolters/code-kata
========================

A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition.

87[1 issues](https://github.com/FlorianWolters/PHP-CodeKata/issues)PHP

Since Jun 2Pushed 11y ago1 watchersCompare

[ Source](https://github.com/FlorianWolters/PHP-CodeKata)[ Packagist](https://packagist.org/packages/florianwolters/code-kata)[ RSS](/packages/florianwolters-code-kata/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

FlorianWolters\\CodeKata
========================

[](#florianwolterscodekata)

[![Build Status](https://camo.githubusercontent.com/3126380479affcab18f04ceace1e6863857da07d16b8ed664fb7993dbd35713e/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f466c6f7269616e576f6c746572732f5048502d436f64654b6174612e706e673f6272616e63683d6d6173746572)](http://travis-ci.org/FlorianWolters/PHP-CodeKata)[![Build Status](https://camo.githubusercontent.com/3126380479affcab18f04ceace1e6863857da07d16b8ed664fb7993dbd35713e/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f466c6f7269616e576f6c746572732f5048502d436f64654b6174612e706e673f6272616e63683d6d6173746572)](http://travis-ci.org/FlorianWolters/PHP-CodeKata)[![Latest Stable Version](https://camo.githubusercontent.com/7680e518f3d5084656149daeec6fefecc848353aa16eff41c1956815a2b16825/68747470733a2f2f706f7365722e707567782e6f72672f666c6f7269616e776f6c746572732f636f64652d6b6174612f76657273696f6e2e706e67)](https://packagist.org/packages/florianwolters/code-kata)[![Latest Unstable Version](https://camo.githubusercontent.com/d03e53682bcf145348d3ecc5308f56b38e2f453755945ead4d3151fbe09b30a5/68747470733a2f2f706f7365722e707567782e6f72672f666c6f7269616e776f6c746572732f636f64652d6b6174612f762f756e737461626c652e706e67)](https://packagist.org/packages/florianwolters/code-kata)

Period of TimeNumber of DownloadsTotal[![Total Downloads](https://camo.githubusercontent.com/cfb7befa7926e820ddfd932365ac0bbd803d345a1682311efedfe477ce6581bf/68747470733a2f2f706f7365722e707567782e6f72672f666c6f7269616e776f6c746572732f636f64652d6b6174612f646f776e6c6f6164732e706e67)](https://packagist.org/packages/florianwolters/code-kata)Monthly[![Monthly Downloads](https://camo.githubusercontent.com/e045f4329fcbe26cef40c271d425207f4c8998a7e92465187d5189f4d2562428/68747470733a2f2f706f7365722e707567782e6f72672f666c6f7269616e776f6c746572732f636f64652d6b6174612f642f6d6f6e74686c792e706e67)](https://packagist.org/packages/florianwolters/code-kata)Daily[![Daily Downloads](https://camo.githubusercontent.com/7b5ed8d1dc3c97dc8c29b3feff620ef6a701f2d37fda97e9b19615648912fdb4/68747470733a2f2f706f7365722e707567782e6f72672f666c6f7269616e776f6c746572732f636f64652d6b6174612f642f6461696c792e706e67)](https://packagist.org/packages/florianwolters/code-kata)**FlorianWolters\\CodeKata** provides [code kata](http://content.codersdojo.org/code-kata-catalogue "Code Kata Catalogue") implementations in the [PHP](http://php.net "PHP: Hypertext Preprocessor") programming language.

Table of Contents (ToC)
-----------------------

[](#table-of-contents-toc)

- [Introduction](#introduction)
- [Features](#features)
- [Requirements](#requirements)
- [License](#license)

Introduction
------------

[](#introduction)

A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition.

Currently, the project contains the following code katas:

- [TheFizzBuzzKata](http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz)
- [ThePrimeFactorsKata](http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata)I've modified the original *ThePrimeFactorsKata* from Robert C. Martin (*Uncle Bob*) as follows:
    - My solution validates the specified argument.
    - I do not refactor the two `while`-loops into two `for`-loops, since the code looks more complicated then.
- [TheBowlingGameCata](http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata)I've modified the original *TheBowlingGameCata* from Robert C. Martin (*Uncle Bob*) as follows:
    - My solution uses validation, whenever required. **Note:** Correct validation for the allowed number of rolls is currently missing.
    - My solution uses a constant instead of the magic number `10` for the number of pins.
    - The `private` method `rollStrike` has been moved from the test class to the implementation class and its visibility was changed to `public`.
    - The `private` method `sumOfBallsInFrame` has been renamed to `sumOfPinsInFrame`.
    - Prefix incrementation (`++$i`) is used instead of postfix incrementation (`$i++`), where applicable.
    - The method names of the test cases have been renamed to reflect their actual goal.

Features
--------

[](#features)

- Artifacts tested with both static and dynamic test procedures:
    - Dynamic component tests (unit tests) implemented using [PHPUnit](http://phpunit.de "sebastianbergmann/phpunit · GitHub").
    - Static code analysis performed using the following tools:
        - [PHP\_CodeSniffer](http://pear.php.net/package/PHP_CodeSniffer "PHP_CodeSniffer"): Style Checker
        - [PHP Mess Detector (PHPMD)](http://phpmd.org "PHPMD - PHP Mess Detector"): Code Analyzer
        - [phpcpd](https://github.com/sebastianbergmann/phpcpd "sebastianbergmann/phpcpd · GitHub"): Copy/Paste Detector (CPD)
        - [phpdcd](https://github.com/sebastianbergmann/phpdcd "sebastianbergmann/phpdcd · GitHub"): Dead Code Detector (DCD)
- Follows the [PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md "PSR-0 requirements for autoloader interoperability") requirements for autoloader interoperability.
- Follows the [PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md "PSR-1 basic coding style guide") basic coding style guide.
- Follows the [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md "PSR-2 coding style guide") coding style guide.
- Follows the [Semantic Versioning](http://semver.org "Semantic Versioning") Specification (SemVer) 2.0.0-rc.1.

Requirements
------------

[](#requirements)

- [PHP](http://php.net "PHP: Hypertext Preprocessor") &gt;= 5.4

License
-------

[](#license)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/75dd7e42d69a87c4a0c68b4f29f5d223eb1f9a3f647abafa72da80d2a06d2442?d=identicon)[FlorianWolters](/maintainers/FlorianWolters)

---

Top Contributors

[![FlorianWolters](https://avatars.githubusercontent.com/u/1318837?v=4)](https://github.com/FlorianWolters "FlorianWolters (17 commits)")

### Embed Badge

![Health badge](/badges/florianwolters-code-kata/health.svg)

```
[![Health](https://phpackages.com/badges/florianwolters-code-kata/health.svg)](https://phpackages.com/packages/florianwolters-code-kata)
```

###  Alternatives

[webdevstudios/cmb2-attached-posts

Custom field for CMB2 for creating post relationships.

13465.7k](/packages/webdevstudios-cmb2-attached-posts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
