PHPackages                             cpsit/quality-tools - 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. cpsit/quality-tools

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

cpsit/quality-tools
===================

A collection of tools for quality assurance in TYPO3 projects.

0.2.0(3mo ago)1688[5 issues](https://github.com/CPS-IT/quality-tools/issues)GPL-3.0-or-laterPHPPHP ^8.3

Since Dec 18Pushed 3w agoCompare

[ Source](https://github.com/CPS-IT/quality-tools)[ Packagist](https://packagist.org/packages/cpsit/quality-tools)[ Docs](https://github.com/CPS-IT/quality-tools)[ RSS](/packages/cpsit-quality-tools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (30)Versions (12)Used By (0)

qt - Quality Tools
==================

[](#qt---quality-tools)

```
I'm qt;) - I will help you cutify your code.

```

A complete command-line interface for TYPO3 quality assurance tools. This package provides both preconfigured tool access via direct commands and a unified CLI with simple shortcuts for common quality assurance tasks.

Status: MVP Complete with Dynamic Optimization
----------------------------------------------

[](#status-mvp-complete-with-dynamic-optimization)

- **Version:** 0.1.0
- **All 10 tool commands fully implemented and tested**
- **Dynamic Resource Optimization:** - Automatic memory and performance optimization for all tools
- **Configuration Hierarchy:** - Supports global user configuration, project-specific configuration, CLI overrides
- **Unified YAML Configuration:** - Centralized configuration for all tools with flexible path configuration
- **Flexible Path Configuration:** - Supports custom paths beyond standard TYPO3 structure

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

[](#installation)

```
composer require --dev cpsit/quality-tools
```

Included Quality Tools
----------------------

[](#included-quality-tools)

ToolDescription[a9f/typo3-fractor](https://packagist.org/packages/a9f/typo3-fractor)TYPO3-specific code modernization and refactoring tool[armin/editorconfig-cli](https://packagist.org/packages/armin/editorconfig-cli)Command line tool for EditorConfig validation[ergebnis/composer-normalize](https://packagist.org/packages/ergebnis/composer-normalize)Composer plugin to normalize composer.json files[helmich/typo3-typoscript-lint](https://packagist.org/packages/helmich/typo3-typoscript-lint)Linter for TYPO3 TypoScript files[phpstan/phpstan](https://packagist.org/packages/phpstan/phpstan)Static analysis tool for PHP[phpunit/php-code-coverage](https://packagist.org/packages/phpunit/php-code-coverage)Code coverage information for PHP[ssch/typo3-rector](https://packagist.org/packages/ssch/typo3-rector)TYPO3-specific automated code upgrades and refactoring[typo3/coding-standards](https://packagist.org/packages/typo3/coding-standards)TYPO3 coding standards and code style toolsQuick Start
-----------

[](#quick-start)

### Unified YAML Configuration (Recommended)

[](#unified-yaml-configuration-recommended)

Create a centralized configuration file for all quality tools:

```
# Initialize configuration with templates
vendor/bin/qt config:init --template=typo3-site-package

# Validate your configuration
vendor/bin/qt config:validate

# View resolved configuration
vendor/bin/qt config:show
```

Example `.quality-tools.yaml`:

```
quality-tools:
  project:
    name: "my-typo3-project"
    php_version: "8.3"
    typo3_version: "13.4"

  # Path configuration for flexible scanning
  paths:
    scan:
      - "packages/"
      - "config/system/"
    additional:
      - "src/**/*.php"                    # Custom source directory
      - "vendor/cpsit/*/Classes"          # Scan CPSIT vendor packages
      - "vendor/fr/*/Classes"             # Scan other vendor packages
    exclude_patterns:
      - "packages/legacy/*"               # Exclude legacy packages
      - "vendor/*/Tests/"                 # Exclude vendor tests

  tools:
    rector:
      enabled: true
      level: "typo3-13"
    phpstan:
      enabled: true
      level: 6
      memory_limit: "1G"
```

### CLI Commands

[](#cli-commands)

After configuration, use the simple `qt` command shortcuts with automatic optimization:

```
# Lint commands (analysis only)
vendor/bin/qt lint:rector          # Rector dry-run analysis
vendor/bin/qt lint:phpstan         # PHPStan static analysis
vendor/bin/qt lint:php-cs-fixer    # PHP CS Fixer analysis
vendor/bin/qt lint:fractor         # Fractor TypoScript analysis
vendor/bin/qt lint:typoscript      # TypoScript Lint validation
vendor/bin/qt lint:composer        # Composer.json validation

# Fix commands (apply changes)
vendor/bin/qt fix:rector           # Apply Rector fixes
vendor/bin/qt fix:php-cs-fixer     # Apply PHP CS Fixer fixes
vendor/bin/qt fix:fractor          # Apply Fractor fixes
vendor/bin/qt fix:composer         # Normalize composer.json

# All commands support --help for options
vendor/bin/qt lint:phpstan --help
```

### Automatic Optimization in Action

[](#automatic-optimization-in-action)

Every command automatically optimizes for your project size:

```
$ vendor/bin/qt lint:phpstan
Project Analysis: Analyzing TYPO3 project structure...
Project Analysis: Found 1,001 files (174 PHP files) in /packages
Optimization: Setting PHPStan memory limit to 552M for medium project
Optimization: Enabling parallel processing for improved performance

[PHPStan output follows...]
```

### Direct Tool Access (Alternative)

[](#direct-tool-access-alternative)

You can also run tools directly with full configuration paths:

```
# Rector example
app/vendor/bin/rector -c app/vendor/cpsit/quality-tools/config/rector.php --dry-run

# PHPStan example
app/vendor/bin/phpstan analyse -c app/vendor/cpsit/quality-tools/config/phpstan.neon
```

All Available Commands
----------------------

[](#all-available-commands)

### Lint Commands (Analysis Only)

[](#lint-commands-analysis-only)

CommandToolDescription`qt lint:rector`RectorAnalyze code for modernization opportunities`qt lint:phpstan`PHPStanStatic analysis with configurable levels (`--level`, `--memory-limit`)`qt lint:php-cs-fixer`PHP CS FixerCheck coding standards compliance`qt lint:fractor`FractorAnalyze TypoScript for modernization`qt lint:typoscript`TypoScript LintValidate TypoScript syntax and structure`qt lint:composer`ComposerValidate composer.json structure### Fix Commands (Apply Changes)

[](#fix-commands-apply-changes)

CommandToolDescription`qt fix:rector`RectorApply automated code modernization`qt fix:php-cs-fixer`PHP CS FixerFix coding standards violations`qt fix:fractor`FractorApply TypoScript modernization`qt fix:composer`ComposerNormalize composer.json formatting### Configuration Commands

[](#configuration-commands)

CommandDescription`qt config:init`Initialize YAML configuration with project templates`qt config:validate`Validate YAML configuration against schema`qt config:show`Display resolved configuration from all sourcesKey Features
------------

[](#key-features)

### Unified YAML Configuration System

[](#unified-yaml-configuration-system)

- **Centralized Configuration**: Single `.quality-tools.yaml` file for all tools
- **Configuration Hierarchy**: Package defaults -&gt; global user config -&gt; project config -&gt; CLI overrides
- **Custom Tool Configs**: Support for custom tool configuration files via `config_file` option
- **Auto-Discovery**: Automatic detection of tool configs in standard locations (project root, config/)
- **Environment Variables**: Support for `${VAR:-default}` syntax with type-safe interpolation
- **JSON Schema Validation**: Built-in validation with helpful error messages
- **Project Templates**: Ready-made configurations for different TYPO3 project types
- **Backward Compatibility**: Existing tool-specific configurations continue to work

### Flexible Path Configuration

[](#flexible-path-configuration)

- **Additional Paths**: Configure custom paths beyond standard TYPO3 structure
- **Vendor Namespace Patterns**: Scan vendor packages with patterns like "cpsit/*", "fr/*"
- **Glob Pattern Support**: Use powerful glob patterns for path matching
- **Exclusion Patterns**: Exclude specific paths using flexible patterns
- **Tool-Specific Overrides**: Per-tool path configuration for specialized needs
- **Performance Optimized**: Intelligent caching and path resolution

### Dynamic Resource Optimization (Zero Configuration)

[](#dynamic-resource-optimization-zero-configuration)

- **Automatic Project Analysis**: Analyzes your project size, complexity, and file types to determine optimal settings
- **Smart Memory Management**: Dynamically calculates memory limits (552M for PHPStan, 460M for PHP CS Fixer, 690M for Rector)
- **Performance Optimization**: 50%+ performance improvement through automatic parallel processing and caching
- **Smart Path Scoping**: Defaults to `/packages` directory for TYPO3 projects (analyzing 1,001 files vs 48K+ files)
- **Zero Configuration**: All optimization happens automatically without user input or configuration files

### Project Integration

[](#project-integration)

- **Automatic TYPO3 Project Detection**: Traverses up to 10 directory levels to find your TYPO3 project root
- **Configuration Path Resolution**: Automatically locates preconfigured tool configurations with custom override support (`--config` option)
- **Flexible Target Specification**: Specify custom paths for analysis (`--path` option)
- **Comprehensive Error Handling**: Proper exit codes and detailed error messages

### Advanced Features

[](#advanced-features)

- **Optimization Diagnostics**: View project analysis and optimization decisions (shown by default)
- **Manual Override Options**: Disable optimization with `--no-optimization` for edge cases
- **Extensive Testing**: 97.9% line coverage with 283 tests and 810 assertions
- **Performance Monitoring**: Built-in metrics show optimization effectiveness

### Optimization Examples

[](#optimization-examples)

**Small Project (&lt; 100 files):**

```
Project Analysis: Found 45 files (12 PHP files) in /packages
Optimization: Setting PHPStan memory limit to 256M for small project
Optimization: Standard processing mode selected

```

**Large Project (1000+ files):**

```
Project Analysis: Found 2,847 files (423 PHP files) in /packages
Optimization: Setting Rector memory limit to 1200M for large project
Optimization: Enabling parallel processing and caching for performance

```

**Override Options for Advanced Users:**

```
# Disable automatic optimization (also hides optimization details)
vendor/bin/qt lint:phpstan --no-optimization

# Manual memory limit (overrides automatic calculation)
vendor/bin/qt lint:phpstan --memory-limit=1024M
```

Table of Contents
-----------------

[](#table-of-contents)

### User Guide

[](#user-guide)

- [User Guide](docs/user-guide/index.md) - Complete guide for installing and using the CLI tool
- [Project Planning](docs/plan/index.md) - Complete planning documentation and known issues

### Developer Guide

[](#developer-guide)

- [Developer Guide](docs/developer-guide/index.md) - Complete developer documentation including architecture, testing, and contribution guidelines
- [Testing Infrastructure](docs/developer-guide/testing.md) - Testing best practices, virtual filesystem, and test isolation

### Configuration Guide

[](#configuration-guide)

- [YAML Configuration Guide](docs/configuration/yaml-configuration.md) - Complete guide for unified YAML configuration
- [Configuration Reference](docs/configuration/reference.md) - Complete reference of all configuration options
- [Migration Guide](docs/configuration/migration.md) - Migrating from tool-specific to unified configuration
- [Environment Variables](docs/configuration/environment-variables.md) - Using environment variables in configuration
- [Templates](docs/configuration/templates.md) - Project templates and customization

### Tool Configuration

[](#tool-configuration)

- [Dynamic Resource Optimization](docs/user-guide/optimization.md) - How automatic optimization works
- [Fractor](docs/user-guide/tool/Fractor.md) - TYPO3 Fractor configuration and usage
- [PHP CS Fixer](docs/user-guide/tool/PhpCsFixer.md) - PHP coding standards fixer configuration
- [PHPStan](docs/user-guide/tool/Phpstan.md) - Static analysis tool configuration
- [Rector](docs/user-guide/tool/Rector.md) - TYPO3 Rector configuration and usage
- [TypoScript Lint](docs/user-guide/tool/TypoScriptLint.md) - TypoScript linting configuration

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance68

Regular maintenance activity

Popularity21

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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.

###  Release Activity

Cadence

Every ~83 days

Total

2

Last Release

113d ago

### Community

Maintainers

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

---

Top Contributors

[![dwenzel](https://avatars.githubusercontent.com/u/712458?v=4)](https://github.com/dwenzel "dwenzel (204 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cpsit-quality-tools/health.svg)

```
[![Health](https://phpackages.com/badges/cpsit-quality-tools/health.svg)](https://phpackages.com/packages/cpsit-quality-tools)
```

###  Alternatives

[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k16.7M1.0k](/packages/phpro-grumphp)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M572](/packages/shopware-core)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

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