PHPackages                             figuren-theater/code-quality - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. figuren-theater/code-quality

ActiveLibrary[Testing &amp; Quality](/categories/testing)

figuren-theater/code-quality
============================

Development tools to measure and test the code quality of figuren.theater, the WordPress Multisite network for puppeteers.

2.0.0(10mo ago)12.0k[7 issues](https://github.com/figuren-theater/code-quality/issues)[5 PRs](https://github.com/figuren-theater/code-quality/pulls)20GPL-3.0-or-laterCI passing

Since Jun 20Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/figuren-theater/code-quality)[ Packagist](https://packagist.org/packages/figuren-theater/code-quality)[ Docs](https://websites.fuer.figuren.theater)[ RSS](/packages/figuren-theater-code-quality/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (48)Used By (20)

 [ ![figuren.theater Logo](https://raw.githubusercontent.com/figuren-theater/logos/main/favicon.png) ](https://github.com/figuren-theater/code-quality)figuren.theater | Code Quality
==============================

[](#figurentheater--code-quality)

 Development tools to measure and test the code quality of [figuren.theater](https://figuren.theater), the WordPress Multisite network for puppeteers.

 [**Read our blog**](https://meta.figuren.theater/blog)

 [See the network in action](https://figuren.theater) • [Join the network](https://mein.figuren.theater) • [Create your own network](https://websites.fuer.figuren.theater)

About
-----

[](#about)

This is the long desc

- *list closed tracking-issues or `docs` files here*
- Do you have any [ideas](https://github.com/figuren-theater/code-quality/issues/new) ?

Background &amp; Motivation
---------------------------

[](#background--motivation)

See the workflow running for the figuren.theater platform

RepoCode Quality1.[ft-admin-ui](https://github.com/figuren-theater/ft-admin-ui/)[![Build, test & measure](https://github.com/figuren-theater/ft-admin-ui/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-admin-ui/actions/workflows/build-test-measure.yml)2.[ft-core](https://github.com/figuren-theater/ft-core/)[![Build, test & measure](https://github.com/figuren-theater/ft-core/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-core/actions/workflows/build-test-measure.yml)3.[ft-coresites](https://github.com/figuren-theater/ft-coresites)4.[ft-data](https://github.com/figuren-theater/ft-data)5.└── [ft-network-sourcelinks](https://github.com/figuren-theater/ft-network-sourcelinks)6.[ft-interactive](https://github.com/figuren-theater/ft-interactive)[![Build, test & measure](https://github.com/figuren-theater/ft-interactive/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-interactive/actions/workflows/build-test-measure.yml)7.[ft-maintenance](https://github.com/figuren-theater/ft-maintenance)[![Build, test & measure](https://github.com/figuren-theater/ft-maintenance/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-maintenance/actions/workflows/build-test-measure.yml)8.[ft-media](https://github.com/figuren-theater/ft-media)[![Build, test & measure](https://github.com/figuren-theater/ft-media/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-media/actions/workflows/build-test-measure.yml)9.[ft-onboarding](https://github.com/figuren-theater/ft-onboarding)[![Build, test & measure](https://github.com/figuren-theater/ft-onboarding/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-onboarding/actions/workflows/build-test-measure.yml)10.├── [ft-core-block-domaincheck](https://github.com/figuren-theater/ft-core-block-domaincheck)11.└── [install.php](https://github.com/figuren-theater/install.php/)[![Build, test & measure](https://github.com/figuren-theater/install.php/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/install.php/actions/workflows/build-test-measure.yml)12.[ft-options](https://github.com/figuren-theater/ft-options)[![Build, test & measure](https://github.com/figuren-theater/ft-options/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-options/actions/workflows/build-test-measure.yml)13.[ft-performance](https://github.com/figuren-theater/ft-performance/)[![Build, test & measure](https://github.com/figuren-theater/ft-performance/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-performance/actions/workflows/build-test-measure.yml)14.[ft-platform](https://github.com/figuren-theater/ft-platform/)[![Build, test & measure](https://github.com/figuren-theater/ft-platform/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-platform/actions/workflows/build-test-measure.yml)15.[ft-platform-collection](https://github.com/figuren-theater/ft-platform-collection/)[![Build, test & measure](https://github.com/figuren-theater/ft-platform-collection/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-platform-collection/actions/workflows/build-test-measure.yml)16.[ft-privacy](https://github.com/figuren-theater/ft-privacy)[![Build, test & measure](https://github.com/figuren-theater/ft-privacy/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-privacy/actions/workflows/build-test-measure.yml)17.[ft-routes](https://github.com/figuren-theater/ft-routes)[![Build, test & measure](https://github.com/figuren-theater/ft-routes/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-routes/actions/workflows/build-test-measure.yml)18.[ft-security](https://github.com/figuren-theater/ft-security)[![Build, test & measure](https://github.com/figuren-theater/ft-security/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-security/actions/workflows/build-test-measure.yml)19.[ft-seo](https://github.com/figuren-theater/ft-seo)[![Build, test & measure](https://github.com/figuren-theater/ft-seo/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-seo/actions/workflows/build-test-measure.yml)20.[ft-site-editing](https://github.com/figuren-theater/ft-site-editing)[![Build, test & measure](https://github.com/figuren-theater/ft-site-editing/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-site-editing/actions/workflows/build-test-measure.yml)21.├── [ft-network-block-editor](https://github.com/figuren-theater/ft-network-block-editor)[![Build, test & measure](https://github.com/figuren-theater/ft-network-block-editor/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-network-block-editor/actions/workflows/build-test-measure.yml)22.└── [ft-network-block-patterns](https://github.com/figuren-theater/ft-network-block-patterns)[![Build, test & measure](https://github.com/figuren-theater/ft-network-block-patterns/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-network-block-patterns/actions/workflows/build-test-measure.yml)23.[ft-theater](https://github.com/figuren-theater/ft-theater)[![Build, test & measure](https://github.com/figuren-theater/ft-theater/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-theater/actions/workflows/build-test-measure.yml)24.├── [label-printing](https://github.com/figuren-theater/label-printing)[![Build, test & measure](https://github.com/figuren-theater/label-printing/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/label-printing/actions/workflows/build-test-measure.yml)25.├── [theater-production-blocks](https://github.com/figuren-theater/theater-production-blocks)[![Build, test & measure](https://github.com/figuren-theater/theater-production-blocks/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/theater-production-blocks/actions/workflows/build-test-measure.yml)25.└── [theater-production-subsites](https://github.com/figuren-theater/theater-production-subsites)[![Build, test & measure](https://github.com/figuren-theater/theater-production-subsites/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/theater-production-subsites/actions/workflows/build-test-measure.yml)26.[ft-themes](https://github.com/figuren-theater/ft-themes)[![Build, test & measure](https://github.com/figuren-theater/ft-themes/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-themes/actions/workflows/build-test-measure.yml)27.[ft-theming](https://github.com/figuren-theater/ft-theming)[![Build, test & measure](https://github.com/figuren-theater/ft-theming/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/ft-theming/actions/workflows/build-test-measure.yml)28.[.github](https://github.com/figuren-theater/.github/)[![Build, test & measure](https://github.com/figuren-theater/.github/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/.github/actions/workflows/build-test-measure.yml)29.[code-quality](https://github.com/figuren-theater/code-quality/)[![Build, test & measure](https://github.com/figuren-theater/code-quality/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/code-quality/actions/workflows/build-test-measure.yml)30.├── [phpstan](https://github.com/figuren-theater/phpstan)*(No Build, no tests :)*31.└── [coding-standards](https://github.com/figuren-theater/coding-standards/)[![Build, test & measure](https://github.com/figuren-theater/coding-standards/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/coding-standards/actions/workflows/build-test-measure.yml)32.[new-ft-module](https://github.com/figuren-theater/new-ft-module/)[![Build, test & measure](https://github.com/figuren-theater/new-ft-module/actions/workflows/build-test-measure.yml/badge.svg)](https://github.com/figuren-theater/new-ft-module/actions/workflows/build-test-measure.yml)33.[status.figuren.theater](https://github.com/figuren-theater/status.figuren.theater)34.[BLOGS](https://github.com/figuren-theater/BLOGS)35.├── [websites.fuer.figuren.theater/demos](https://github.com/figuren-theater/websites.fuer.figuren.theater-demos)36.└── [katharina-muschiol.de](https://github.com/figuren-theater/katharina-muschiol.de/)Install
-------

[](#install)

1. Install via command line ```
    composer require --dev figuren-theater/code-quality@*
    ```
2. Create a [phpstan.neon](https://github.com/figuren-theater/new-ft-module/blob/main/phpstan.neon) file in the root of the repository
3. Create a [.phpcs.xml](https://github.com/figuren-theater/new-ft-module/blob/main/.phpcs.xml) file in the root of the repository

Usage
-----

[](#usage)

```
composer normalize
```

```
vendor/bin/phpstan analyse -nvv
```

```
vendor/bin/phpcs . -v
```

Built with &amp; uses
---------------------

[](#built-with--uses)

- [dependabot](/.github/dependabot.yml)
- [figuren-theater/coding-standards](https://github.com/figuren-theater/coding-standards/)
- [figuren-theater/phpstan](https://github.com/figuren-theater/phpstan/)
- [composer normalize](https://github.com/ergebnis/composer-normalize)

Contributing
------------

[](#contributing)

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

Versioning
----------

[](#versioning)

We use [Semantic Versioning](http://semver.org/). For the versions available, see the [tags on this repository](https://github.com/figuren-theater/code-quality/tags).

Authors
-------

[](#authors)

- **Carsten Bach** - *Provided idea &amp; code* - [figuren.theater/crew](https://figuren.theater/crew/)

See also the list of [contributors](https://github.com/figuren-theater/code-quality/contributors)who participated in this project.

License
-------

[](#license)

This project is licensed under the **GPL-3.0-or-later**, see the [LICENSE](/LICENSE) file for details

Acknowledgments
---------------

[](#acknowledgments)

- [@szepeviktor](https://github.com/szepeviktor) for all wonderful sharings over the last years especially everything related coding-standards and semi-automated tests.
- [altis](https://github.com/search?q=org%3Ahumanmade+altis) by humanmade, as our digital role model and inspiration
- [@roborourke](https://github.com/roborourke) for his clear &amp; understandable [coding guidelines](https://docs.altis-dxp.com/guides/code-review/standards/)
- [python-project-template](https://github.com/rochacbruno/python-project-template) for their nice template-&gt;repo renaming workflow

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance53

Moderate activity, may be stable

Popularity22

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.3% 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 ~22 days

Recently: every ~126 days

Total

35

Last Release

318d ago

Major Versions

0.9.0 → 1.0.02023-11-22

1.2.2 → 2.0.02025-07-05

### Community

Maintainers

![](https://www.gravatar.com/avatar/f99ef16a50d87ccfe464631d036468e3b795ba0c7b1200d1afb01a100aaf7c8f?d=identicon)[carstingaxion](/maintainers/carstingaxion)

---

Top Contributors

[![carstingaxion](https://avatars.githubusercontent.com/u/198883?v=4)](https://github.com/carstingaxion "carstingaxion (288 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (35 commits)")[![figuren-theater-bot](https://avatars.githubusercontent.com/u/134634486?v=4)](https://github.com/figuren-theater-bot "figuren-theater-bot (6 commits)")[![swissspidy](https://avatars.githubusercontent.com/u/841956?v=4)](https://github.com/swissspidy "swissspidy (1 commits)")

---

Tags

wordpresseditorconfigphpcs.xmlphpstan.neon

### Embed Badge

![Health badge](/badges/figuren-theater-code-quality/health.svg)

```
[![Health](https://phpackages.com/badges/figuren-theater-code-quality/health.svg)](https://phpackages.com/packages/figuren-theater-code-quality)
```

###  Alternatives

[wp-coding-standards/wpcs

PHP\_CodeSniffer rules (sniffs) to enforce WordPress coding conventions

2.8k42.5M1.6k](/packages/wp-coding-standards-wpcs)[wp-cli/wp-cli-tests

WP-CLI testing framework

422.7M87](/packages/wp-cli-wp-cli-tests)[lucatume/wp-browser

A set of Codeception modules to test WordPress projects.

6343.8M153](/packages/lucatume-wp-browser)[phpcompatibility/phpcompatibility-wp

A ruleset for PHP\_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.

22130.6M587](/packages/phpcompatibility-phpcompatibility-wp)[szepeviktor/phpstan-wordpress

WordPress extensions for PHPStan

3287.8M898](/packages/szepeviktor-phpstan-wordpress)[acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

32902.4k](/packages/acquia-orca)

PHPackages © 2026

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