PHPackages                             fm-labs/cakephp-devtools - 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. fm-labs/cakephp-devtools

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

fm-labs/cakephp-devtools
========================

CakePHP developer tools

5.0.0(1y ago)01003UnlicenseShellPHP &gt;=8.1CI failing

Since Apr 10Pushed 1y ago1 watchersCompare

[ Source](https://github.com/fm-labs/cakephp-devtools)[ Packagist](https://packagist.org/packages/fm-labs/cakephp-devtools)[ Docs](http://github.com/fm-labs/cakephp-devtools)[ RSS](/packages/fm-labs-cakephp-devtools/feed)WikiDiscussions 5.x Synced 1w ago

READMEChangelogDependencies (13)Versions (11)Used By (3)

CakePHP devtools
================

[](#cakephp-devtools)

**! THIS PACKAGE IS FOR CAKEPHP 5 !**

For CakePHP4 use the 4.x branch of this repository

---

[![Build Status](https://camo.githubusercontent.com/674a2a690dd49e0026bb019b954072d1b0bf158bc23be66cd78ad53fe73a24c7/68747470733a2f2f7472617669732d63692e6f72672f666d2d6c6162732f63616b657068702d646576746f6f6c732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/fm-labs/cakephp-devtools)[![Latest Stable Version](https://camo.githubusercontent.com/6304d761371500b390d8693ef1ffa2ac9408078957a0e4e57787c333d5f096eb/68747470733a2f2f706f7365722e707567782e6f72672f666d2d6c6162732f63616b657068702d646576746f6f6c732f762f737461626c652e737667)](https://packagist.org/packages/fm-labs/cakephp-devtools)[![Total Downloads](https://camo.githubusercontent.com/b9036591346be92bb08449d263943f452c283dd047bea9421126b24f4f71ad56/68747470733a2f2f706f7365722e707567782e6f72672f666d2d6c6162732f63616b657068702d646576746f6f6c732f646f776e6c6f6164732e737667)](https://packagist.org/packages/fm-labs/cakephp-devtools)[![License](https://camo.githubusercontent.com/f3acba45d35650a12edd7806c121f26c25cfd78d51364616059e0ed3ad862391/68747470733a2f2f706f7365722e707567782e6f72672f666d2d6c6162732f63616b657068702d646576746f6f6c732f6c6963656e73652e737667)](https://packagist.org/packages/fm-labs/cakephp-devtools)

Bundle of common CakePHP developer tools.

The goal is to have a reusable build-environment for CakePHP projects, following CakePHP's philosophy of 'convention-over-configuration'.

This package is primarily a composer meta-package for common PHP developer tools, like `phpunit`, `phpcs`, `phpcbf`, `phpmd`, `phpstan`, `phpcpd`, `phploc`and CakePHP's own essential tools `debug_kit`, `bake` and `repl`.

Instead of adding and maintaining all dev dependencies in each CakePHP project, this package bundles a common set of dev tools and some helper scripts.

Installation
------------

[](#installation)

```
# In your CakePHP project directory
composer require fm-labs/cakephp-devtools:^5

```

Usage
-----

[](#usage)

### CLI usage

[](#cli-usage)

Helper tool to execute commands with shared configurations.

```
 $ cakedev [BUILD-TARGET]

 // Examples
 // List available build targets
 $ cakedev list

 // Run PHPUnit
 $ cakedev phpunit

 // Run PHPUnit without coverage
 $ cakedev phpunit-no-coverage

 // Run PHPStan
 $ cakedev phpstan

 // ... see full build target list below ...

```

### Add scripts to your `composer.json`

[](#add-scripts-to-your-composerjson)

```
// Example scripts in composer.json
{
    [...]
    "scripts": {
        // Run tools via cakedev script
        // (shared configs apply automatically)
        "phpunit": "cakedev phpunit",
        "phpunit-no-coverage": "cakedev phpunit-no-coverage",
        "pdepend": "cakedev pdepend",
        "phpcbf": "cakedev phpcbf",
        "phpcs": "cakedev phpcs",
        "phpmd": "cakedev phpmd",
        "phpstan": "cakedev phpstan",

        // Aliases
        "check": [
            "@test",
            "@cs-check"
        ],
        "cs-check": "cakedev phpcs",
        "cs-fix": "cakedev phpcbf",
        "quick-test": "cakedev quick-test",
        "test": "cakedev phpunit",
        "stan": "cakedev phpstan",
        "quick-build": "cakedev quick-build",
        "full-build": "cakedev full-build",
        "static-analysis": "cakedev static-analysis",

        // Alternative: Run tools directly
        // (shared configs do not apply)
        // "cs-check": "phpcs --colors -p --standard=vendor/cakephp/cakephp-codesniffer/CakePHP src/ tests/",
        // "cs-fix": "phpcbf --colors --standard=vendor/cakephp/cakephp-codesniffer/CakePHP src/ tests/",
        // "stan": "phpstan analyse src/",
        // "test": "phpunit --colors=always tests/",
    },
}

```

```
# Execute script with
# composer run [script-name]
# Example:
$ composer run check

```

### Build Targets

[](#build-targets)

A build target is an alias for a series of build steps.

TargetDescription***HELPERS***infoDisplays infopreparePrepare buildcleanRemove all existing build artifacts***ANALYSE***lintPerform syntax check of sourcecode filesphploc(Project abandoned) Measure project size using PHPLOC and print human readable output. Intended for usage on the command linephploc-ci(Project abandoned) Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment.pdependCalculate software metrics using PHP\_Depend and log result in XML format. Intended for usage within a continuous integration environment.phpmdPerform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.phpmd-ciPerform project mess detection using PHPMD and log result in XML format. Intended for usage within a continuous integration environment.phpcsFind coding standard violations using PHP\_CodeSniffer and print human readable output. Intended for usage on the command line before committing.phpcs-ciFind coding standard violations using PHP\_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.phpcbfAutomatically fix coding standard violations using PHP\_CodeSniffer.phpcpd(Project abandoned) Find duplicate code using PHPCPD and print human readable output. Intended for usage on the command line before committing.phpcpd-ci(Project abandoned) Find duplicate code using PHPCPD and log result in XML format. Intended for usage within a continuous integration environment.phpstanPerform static analysis using PHPSTAN and print human readable output. Intended for usage on the command line before commiting.phpstanPerform static analysis using PHPSTAN and log result in XML format. Intended for usage within a continuous integration environment.***TEST***phpunitRun unit tests with PHPUnitphpunit-no-coverageRun unit tests with PHPUnit (without generating code coverage reports)***DOC GENERATOR***phpdoxGenerate project documentation using phpDox. Runs: phploc-ci, phpcs-ci, phpmd-ci***ALIASES***static-analysisRuns: lint, phploc-ci, pdepend, phpmd-ci, phpcs-ci, phpcpd-ci, phpstan-cistatic-analysis-parallelRuns: lint, phploc-ci, pdepend, phpmd-ci, phpcs-ci, phpcpd-ci, phpstan-ciquick-testRuns: phpunit-no-coveragequick-buildRuns: lint, phpunit-no-coveragefull-buildRuns: static-analysis, phpunit, phpdoxfull-build-parallelRuns: static-analysis-parallel, phpunit, phpdoxReports
-------

[](#reports)

ToolReportFormatDescriptionphploclogs/phploc.csvcsvphploclogs/phploc.xmlxmlphpunitlogs/crap4j.xmlxmlCoverage Crap4j formatphpunitlogs/clover.xmlxmlCoverage Clover formatphpunitlogs/phpunit.phpphpCoverage PHP formatphpunitlogs/phpunit.txttxtCoverage TXT formatphpunitcoverage/htmldirectoryCoverage HTML formatphpunitcoverage/xmldirectoryCoverage XML formatphpunitlogs/junit.xmlxmlTest results JUNIT formatphpcslogs/checkstyle.xmlxmlCheckstyle XMLphpcslogs/checkstyle.diffdiffDIFF formatphpmdlogs/pmd.xmlxmlphpcpdlogs/pmd-cpd.xmlxmlPMD XML formatphpstanlogs/phpstan.xmlxmlpdependlogs/jdepend.xmlxmlJdepend XML formatpdependpdepend/dependencies.svgsvgJdepend Chart Imagepdependpdepend/overview-pyramid.svgsvgJdepend Pyramid Imagepdependpdepend/dependencies.xmlxmlJdepend Dependencies XMLpdependpdepend/summary.xmlxmlJdepend Summary XMLPhing
-----

[](#phing)

Under the hood all build targets will be executed using `phing` . The phing configuration file is located at `configs/phing.xml` .

```
 // Phing command
 $ ./vendor/bin/phing -Dbasedir=$(pwd) -f ./vendor/fm-labs/cakephp-devtools/configs/phing.xml [BUILD-TARGET]

```

### Phing Properties

[](#phing-properties)

```

```

### Custom Properties

[](#custom-properties)

Create a `build.properties` file in your project root directory and set one key-value pair per line.

```
#Example build.properties file:
phpunit.bin=/my/custom/path/to/phpunit
phpunit.log.junit=/my/custom/path/junit.xml
phpunit.args=--exclude-group someTestGroupName
phpstan.configuration=/my/custom/config/path/phpstan.neon

```

Hints
=====

[](#hints)

PhpUnit
-------

[](#phpunit)

- ***Exclude code blocks from code coverage:***Use the `@codecoverageIgnore`, `@codecoverageIgnoreStart`, `@codecoverageIgnoreEnd` PHP annotations on classes, methods or lines. Read more: [PHPUnit Manual:Ignoring Code Blocks](https://phpunit.readthedocs.io/en/8.5/code-coverage-analysis.html#code-coverage-analysis-ignoring-code-blocks)

CodeSniffer
-----------

[](#codesniffer)

- ***Exclude code blocks from code sniffing:***Use the `//phpcs:disable` and `//phpcs:enable` comment lines around code you want to ignore.
- ***Exclude files from code sniffing:***Use the `//phpcs:ignoreFile` comment line at the top of the excluded file.

---

License
-------

[](#license)

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to

[LICENSE](LICENSE)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance49

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity71

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~207 days

Recently: every ~197 days

Total

10

Last Release

368d ago

Major Versions

1.4.0 → 4.0.12023-03-18

4.0.2 → 5.0.02025-05-15

PHP version history (3 changes)1.0.0PHP &gt;=7.2

1.2.0PHP &gt;=7.4

5.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5556440?v=4)[fm-labs](/maintainers/fm-labs)[@fm-labs](https://github.com/fm-labs)

---

Top Contributors

[![fm-labs](https://avatars.githubusercontent.com/u/5556440?v=4)](https://github.com/fm-labs "fm-labs (59 commits)")

### Embed Badge

![Health badge](/badges/fm-labs-cakephp-devtools/health.svg)

```
[![Health](https://phpackages.com/badges/fm-labs-cakephp-devtools/health.svg)](https://phpackages.com/packages/fm-labs-cakephp-devtools)
```

###  Alternatives

[ec-europa/toolkit

Toolkit packaged for Drupal projects based on Robo.

38244.6k16](/packages/ec-europa-toolkit)

PHPackages © 2026

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