DevTools

Namespace

Table of Contents

Interfaces

UnreleasedEntryCheckerInterface

Verifies that the changelog contains meaningful unreleased changes.

ChangelogManagerInterface

Applies changelog mutations and derives release metadata.

ChangelogParserInterface

Parses managed changelog markdown into domain objects.

MarkdownRendererInterface

Renders managed changelog domain objects into markdown.

ComposerJsonInterface

Defines the contract for reading and exposing normalized metadata from a Composer `composer.json` file.

AuthorInterface

Defines the contract for representing an author entry within a composer.json file.

FundingInterface

Defines the contract for representing a single entry of the "funding" section of a composer.json file.

SupportInterface

Defines the contract for representing the "support" section of a composer.json file.

LoggerAwareCommandInterface

Defines the logger contract consumed by reusable command result helpers.

ContextProcessorInterface

Defines a processor that transforms log context payloads.

FilesystemInterface

Defines a standard file system interface with enhanced path resolution.

FinderFactoryInterface

Creates fresh Symfony Finder instances for each filesystem scan.

GitClientInterface

Provides semantic Git operations for repository-aware services.

CandidateProviderInterface

Provides the canonical list of candidate paths for export-ignore rules.

ExistenceCheckerInterface

Checks the existence of files and directories in a given base path.

ExportIgnoreFilterInterface

Filters canonical export-ignore candidates against consumer keep rules.

MergerInterface

Merges export-ignore entries with existing .gitattributes content.

ReaderInterface

Defines the contract for reading .gitattributes files from persistent storage.

WriterInterface

Defines the contract for writing .gitattributes files to persistent storage.

ClassifierInterface

Defines the contract for classifying .gitignore entries.

GitIgnoreInterface

Defines the contract for a .gitignore file with its path and entries.

MergerInterface

Defines the contract for merging .gitignore entries.

ReaderInterface

Defines the contract for reading .gitignore files from a storage location.

WriterInterface

Defines the contract for writing .gitignore representations to persistent storage.

GeneratorInterface

Generates LICENSE files from composer.json metadata.

ResolverInterface

Resolves license identifiers to their corresponding template filenames.

CoverageSummaryLoaderInterface

Loads PHPUnit `coverage-php` reports and exposes their line coverage summary.

ProcessBuilderInterface

Defines a fluent builder responsible for constructing process instances.

ProcessQueueInterface

Defines a queue responsible for collecting and executing process instances.

DifferInterface

Defines the contract for generating unified diffs.

Classes

UnreleasedEntryChecker

Compares unreleased changelog entries against the current branch or a base ref.

ChangelogDocument

Represents the minimal Keep a Changelog document structure used by dev-tools.

ChangelogRelease

Represents one Keep a Changelog release section.

ChangelogManager

Applies changelog mutations and derived release metadata.

ChangelogParser

Parses the subset of Keep a Changelog structure managed by dev-tools.

MarkdownRenderer

Renders Keep a Changelog markdown in a deterministic package-friendly format.

CodeOwnersGenerator

Generates CODEOWNERS content from repository metadata.

DevToolsCommandProvider

Provides a registry of custom dev-tools commands mapped for Composer integration.

ComposerJson

Represents a specialized reader for a Composer JSON file.

Author

Concrete implementation of the ComposerJsonAuthorInterface.

Funding

Represents a single funding entry from the optional "funding" section of a composer.json file.

Support

Represents the optional "support" section of a composer.json file.

Plugin

Implements the lifecycle of the Composer dev-tools extension framework.

ComposerDependencyAnalyserConfig

Provides the default Composer Dependency Analyser configuration.

ECSConfig

Provides the default ECS configuration.

RectorConfig

Provides the default Rector configuration.

AgentsCommand

Synchronizes packaged Fast Forward project agents into the consumer repository.

ChangelogCheckCommand

Verifies that the changelog contains pending unreleased notes.

ChangelogEntryCommand

Inserts a changelog entry into the managed changelog file.

ChangelogNextVersionCommand

Infers the next semantic version from changelog content.

ChangelogPromoteCommand

Promotes the Unreleased section into a published changelog version.

ChangelogShowCommand

Prints the rendered notes body for a released changelog version.

CodeOwnersCommand

Generates and synchronizes CODEOWNERS files from local project metadata.

CodeStyleCommand

Represents the command responsible for checking and fixing code style issues.

CopyResourceCommand

Copies packaged or local resources into the consumer repository.

DependenciesCommand

Orchestrates dependency analysis across the supported Composer analyzers.

DocsCommand

Generates the package API documentation through phpDocumentor.

FundingCommand

Synchronizes funding metadata between composer.json and .github/FUNDING.yml.

GitAttributesCommand

Provides functionality to manage .gitattributes export-ignore rules.

GitHooksCommand

Installs packaged Git hooks for the consumer repository.

GitIgnoreCommand

Provides functionality to merge and synchronize .gitignore files.

LicenseCommand

Generates and copies LICENSE files to projects.

PhpDocCommand

Provides operations to inspect, lint, and repair PHPDoc comments across the project.

RefactorCommand

Provides functionality to execute automated code refactoring using Rector.

ReportsCommand

Coordinates the generation of Fast Forward documentation frontpage and related reports.

SkillsCommand

Synchronizes packaged Fast Forward skills into the consumer repository.

StandardsCommand

Executes the full suite of Fast Forward code standard checks.

SyncCommand

Orchestrates dev-tools synchronization commands for the consumer repository.

TestsCommand

Facilitates the execution of the PHPUnit testing framework.

UpdateComposerJsonCommand

Updates composer.json with the Fast Forward dev-tools integration metadata.

WikiCommand

Handles the generation of API documentation for the project.

DevToolsCommandLoader

Responsible for dynamically discovering and loading Symfony Console commands within the DevTools context. This class extends the ContainerCommandLoader and integrates with a PSR-11 compatible container to lazily instantiate commands.

DevTools

Wraps the fast-forward console tooling suite conceptually as an isolated application instance.

LogLevelOutputFormatter

Defines additional console styles for log level tags.

OutputFormatLogger

Formats PSR-3 log messages for the DevTools console runtime.

CommandInputProcessor

Expands command input instances into structured context entries.

CommandOutputProcessor

Converts buffered command output objects into serializable context entries.

CompositeContextProcessor

Applies multiple context processors in sequence.

GithubActionOutput

Emits GitHub Actions workflow commands through the console output stream.

Filesystem

Concrete implementation of the standard filesystem interface.

FinderFactory

Default factory for Symfony Finder instances.

ComposerFundingCodec

Parses and renders Composer funding metadata.

FundingProfile

Carries normalized funding metadata across Composer and GitHub formats.

FundingProfileMerger

Merges normalized funding profiles into a deterministic synchronized view.

FundingYamlCodec

Parses and renders GitHub funding YAML metadata.

GitClient

Executes semantic Git operations using the local Git binary.

CandidateProvider

Provides the canonical list of candidate paths for export-ignore rules.

ExistenceChecker

Checks the existence of files and directories in a given base path.

ExportIgnoreFilter

Filters export-ignore candidates using normalized path comparisons.

Merger

Merges .gitattributes content with generated export-ignore rules.

Reader

Reads raw .gitattributes content from the filesystem.

Writer

Persists normalized .gitattributes content.

Classifier

Classifies .gitignore entries as directory-oriented or file-oriented patterns.

GitIgnore

Represents a .gitignore file with its path and entries.

Merger

Merges, deduplicates, and sorts .gitignore entries.

Reader

Reads .gitignore files and returns domain representations for them.

Writer

Renders and persists normalized .gitignore content.

Generator

Generates LICENSE files from composer.json metadata.

Resolver

Resolves license identifiers to their corresponding template filenames.

ManagedWorkspace

Provides canonical repository-local paths for generated DevTools artifacts.

WorkingProjectPathResolver

Provides canonical repository-root paths that are not part of the managed workspace.

CoverageSummary

Represents the line coverage summary extracted from a PHPUnit `coverage-php` report.

CoverageSummaryLoader

Loads line coverage metrics from the serialized PHPUnit `coverage-php` output.

EventTracer

Collects PHPUnit events grouped by their concrete event class.

ByPassfinalsStartedSubscriber

Enables BypassFinals when the PHPUnit test suite starts.

JoliNotifExecutionFinishedSubscriber

Sends a desktop notification when the PHPUnit execution finishes.

DevToolsExtension

Registers the Joli notification tracer within the PHPUnit extension lifecycle.

ProcessBuilder

Builds immutable process definitions from a command and a collection of arguments.

ProcessQueue

Executes queued processes sequentially while supporting detached entries and optional failure suppression.

SystemClock

A clock implementation that returns the current system time.

AddMissingClassPhpDocRector

Provides automated refactoring to prepend basic PHPDoc comments on classes missing them.

AddMissingMethodPhpDocRector

Executes AST inspections parsing missing documentation on methods automatically.

RemoveEmptyDocBlockRector

Implements automation targeting the removal of purposeless empty DocBlock structures natively.

FileDiff

Carries the result of comparing source and target file contents.

FileDiffer

Renders deterministic summaries and unified diffs for file comparisons.

UnifiedDiffer

Generates unified diffs using the default Sebastian diff output builder.

DevToolsServiceProvider

DevToolsServiceProvider registers the services provided by this package.

PackagedDirectorySynchronizer

Synchronizes one packaged directory of symlinked entries into a consumer repository.

SynchronizeResult

Result object for packaged directory synchronization operations.

Traits

HasCommandLogger

Resolves the logger expected by command result helper traits.

LogsCommandResults

Provides reusable helpers for logging command outcomes and returning exit codes.

HasJsonOption

Provides the standard JSON output options used by DevTools commands.

Enums

ChangelogEntryType

Represents the supported Keep a Changelog entry categories.