Skip to content

docs: add author and license information to multiple files#69

Merged
konradmichalik merged 5 commits intomainfrom
doc-block-header
Sep 7, 2025
Merged

docs: add author and license information to multiple files#69
konradmichalik merged 5 commits intomainfrom
doc-block-header

Conversation

@konradmichalik
Copy link
Copy Markdown
Contributor

@konradmichalik konradmichalik commented Sep 4, 2025

Summary by CodeRabbit

  • Documentation

    • Added consistent PHPDoc headers (author, license, package) across source and test code.
  • Style

    • Updated code-style configuration to enforce docblock header rules.
  • Chores

    • Added a development dependency to support automated docblock header fixing.
  • Tests

    • Enhanced tests with headers, added test helpers to exercise protected behavior, and enabled verbose test script output.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Sep 4, 2025

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

Adds PHPDoc headers across source and test files, introduces a string-backed enum FormatType, marks one provider class as final, updates PHP-CS-Fixer config to include a DocBlockHeader rule and registers a custom fixer (commented), adds a dev dependency for the doc-block fixer, adjusts a test composer script to be verbose, and adds several test helpers/mocks. No runtime behavior changed.

Changes

Cohort / File(s) Summary
Coding standards config
\.php-cs-fixer.php, composer.json
Added RuleSet::fromArray(...) call to Config chain to apply a DocBlockHeader rule built via KonradMichalik\PhpDocBlockHeaderFixer\Generators\DocBlockHeader::create(...)->__toArray(), registered a custom fixer class (commented/temporarily disabled), and added konradmichalik/php-doc-block-header-fixer to require-dev (^0.2).
Class signature change
src/Capability/ValidateTranslationCommandProvider.php
Added class-level PHPDoc and changed the class declaration to final class ValidateTranslationCommandProvider implements CommandProvider.
New public enum
src/Result/FormatType.php
Added PHPDoc header above the existing public string-backed enum FormatType with cases CLI, JSON, and GITHUB (documentation-only addition).
Interfaces (doc additions)
src/Result/ValidationResultRendererInterface.php, src/Parser/ParserInterface.php, src/FileDetector/DetectorInterface.php, src/Validator/ValidatorInterface.php
Added PHPDoc headers above multiple interfaces (documentation-only edits; no signature changes).
Source: docblocks across src/
src/... (e.g. src/Config/..., src/FileDetector/..., src/Parser/..., src/Result/..., src/Service/..., src/Utility/..., src/Validator/..., src/Plugin.php, src/Enum/...)
Added class/file-level PHPDoc headers (author/license/package) to many source files and enums. No functional changes except the single final modifier noted above.
Tests: docblocks across tests/
tests/src/... (many files)
Added PHPDoc headers above many test classes and some test-level declarations (interfaces, helper classes). Mostly documentation-only.
Tests: helper classes / mocks added
tests/src/Result/AbstractValidationResultRendererTest.php, tests/src/Result/ValidationRunTest.php, tests/src/Validator/AbstractValidatorTest.php
Introduced test-only helpers and mocks (e.g., TestableAbstractValidationResultRenderer, MockParserForTesting, MockValidatorWithIssues, MockValidatorWithoutIssues, ConcreteValidator, TestParser) to expose protected behavior and provide deterministic test doubles. These are test-scoped additions only.
Tests: anonymous-class restructuring
tests/src/Parser/JsonParserTest.php, tests/src/Parser/XliffParserTest.php, tests/src/Validator/EncodingValidatorTest.php, tests/src/Validator/SchemaValidatorTest.php, tests/src/Validator/AbstractValidatorTest.php
Rewrote inline anonymous class instantiations into docblock-wrapped class expressions; behavior preserved, change is syntactic/documentation.
Test composer script
tests/composer.json
Appended -v to the translation:xliff:all script to enable verbose output.

Sequence Diagram(s)

(omitted — changes are documentation, configuration, type addition, and test scaffolding; no control flow modifications to visualize)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

A rabbit penned headers with meticulous care,
Signed every class and dotted each square.
I marked one provider final, gave tests some new friends,
Tucked a FormatType enum where output extends.
Hop, fix, stamp — tidy project, off it goes! 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch doc-block-header

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

♻️ Duplicate comments (3)
src/Result/ValidationResultRendererFactory.php (1)

29-34: Apply same metadata normalization as elsewhere

Mirror the author email used in file headers and standardize @Package to the Composer name.

Proposed edit:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
src/Result/ValidationResultJsonRenderer.php (1)

28-34: Keep author email consistent and align @Package

Same nit as other files: unify email with the file header; prefer Composer package name for @Package.

Proposed edit:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
src/Result/AbstractValidationResultRenderer.php (1)

29-34: Docblock metadata consistency

Unify author email with file headers and consider Composer-style @Package.

Proposed edit:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
🧹 Nitpick comments (115)
src/Result/Output.php (1)

30-35: Normalize author email and package tag for consistency with file header and composer package name

Top file header uses km@move-elevator.de; the class docblock uses hej@konradmichalik.dev. Also consider aligning @Package with the Composer package name.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package composer-translation-validator
  */
src/Utility/OutputUtility.php (1)

28-33: Unify author email and consider using Composer package name in @Package

Same mismatch as other files; align to one email and consider the canonical package string.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package composer-translation-validator
  */
src/Parser/AbstractParser.php (1)

29-35: Consistent metadata: author email and package tag

Match the file header email and prefer the Composer package identifier for @Package.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package composer-translation-validator
  */
src/Parser/ParserCache.php (1)

26-32: Minor: align author email and package tag formatting

Keep a single contact across headers, and standardize @Package naming.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package composer-translation-validator
  */
src/Result/Issue.php (1)

26-32: Consistency: author email and package tag

Same suggestion as other files for uniformity across the codebase.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package composer-translation-validator
  */
tests/src/Result/FormatTypeTest.php (1)

30-37: Update class docblock: remove redundant @license, correct @see & @Package

  • Remove * @license GPL-3.0-or-later from the class docblock (already declared in the file header)
  • Replace @see https://google.de with @see https://github.com/move-elevator/composer-translation-validator
  • Change @package ComposerTranslationValidator to @package move-elevator/composer-translation-validator
src/Config/TranslationValidatorConfig.php (1)

26-31: Keep docblock concise: drop redundant license line and standardize package notation

  • License is already covered by the file header.
  • Use Composer package name or omit @package.
- * @license GPL-3.0-or-later
- *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
tests/src/Config/ValidatorSettingsConfigTest.php (1)

29-36: Swap placeholder link, standardize package, and avoid license duplication

  • Replace @see with repo/docs.
  • Prefer Composer package name (or remove @package).
  • @license duplicates header.
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
+ * @see https://github.com/move-elevator/composer-translation-validator
+ * @package move-elevator/composer-translation-validator
src/Parser/PhpParser.php (1)

29-35: Tidy class docblock: remove duplicate license, align package

  • File-level header already states GPL.
  • Use Composer package name or omit @package.
- * @license GPL-3.0-or-later
- *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
src/Validator/EmptyValuesValidator.php (1)

33-39: Docblock nits: avoid license duplication and prefer canonical package string

  • Drop class-level @license (already present in header).
  • Standardize @package.
- * @license GPL-3.0-or-later
- *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
tests/src/Validator/EmptyValuesValidatorTest.php (1)

37-45: Standardize author/email and replace placeholder @see

The header looks good. Minor polish:

  • Use the same author email as the file header (km@move-elevator.de) for consistency.
  • Replace the placeholder @see URL with a relevant reference (e.g., the class under test).
  • Consider dropping @Package (often redundant with namespaces).
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see MoveElevator\ComposerTranslationValidator\Validator\EmptyValuesValidator
  *
- * @package ComposerTranslationValidator
+ * @package
  */
src/Result/ValidationResult.php (1)

30-36: Align author email with file header; consider omitting @Package

Match the email to the file-level header for consistency, and optionally drop @Package.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package
  */
src/Validator/KeyDepthValidator.php (1)

34-40: Keep author/email consistent across headers; trim @Package

Same minor consistency tweaks as elsewhere.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package
  */
src/Result/ValidationStatistics.php (1)

26-32: Unify author email; optional @Package removal

Small docs consistency tweak.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package
  */
src/Parser/YamlParser.php (1)

30-36: Consistent author email and leaner header

Align the email with the file header and consider omitting @Package to reduce redundancy.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package
  */
composer.json (1)

33-33: Pin pre-1.0 fixer more tightly to avoid surprise BC breaks.

^0.1.0 can float across breaking changes. Prefer ~0.1.0 (or exact pin) and bump intentionally.

Apply:

-        "konradmichalik/php-doc-block-header-fixer": "^0.1.0",
+        "konradmichalik/php-doc-block-header-fixer": "~0.1.0",
tests/src/Command/ValidateTranslationCommandTest.php (1)

35-42: Unify author/contact and use a meaningful @see.

The file header uses km@move-elevator.de, this block uses hej@konradmichalik.dev; pick one convention. Also replace @see https://google.de.

Example:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/Result/OutputTest.php (1)

36-43: Standardize metadata: email mismatch and generic @see.

Align author email with the project-wide choice and point @see to repo/docs.

Suggested:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/Config/ConfigValidatorTest.php (1)

30-38: Keep author/contact consistent and improve @see target.

Same as other files: unify email and replace google.de.

Proposed:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
src/FileDetector/FileSet.php (1)

26-31: Unify author email and add a short summary (optional).

The file header (Lines 8–9) uses km@move-elevator.de, while the class docblock uses hej@konradmichalik.dev. Pick one email for consistency across the repo. Consider adding a one-line summary to the class docblock for clarity.

Proposed diff:

 /**
+ * Represents a set of translation files for a given parser, path and set key.
+ *
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
  * @package ComposerTranslationValidator
  */
src/Parser/ParserRegistry.php (1)

28-33: Docblock consistency and optional summary.

Mirror the email used in the file header for consistency, and consider adding a brief description of the class purpose.

Proposed diff:

 /**
+ * Registry of available parsers and resolution by file extension.
+ *
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
  * @package ComposerTranslationValidator
  */
tests/src/Parser/ParserRegistryTest.php (1)

34-41: Replace placeholder @see and align author email.

Point @see to the class under test instead of google.de and align the email with other headers.

Proposed diff:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Parser\ParserRegistry
  *
  * @package ComposerTranslationValidator
  */
tests/src/FileDetector/FileSetTest.php (1)

29-36: Replace placeholder @see and align author email.

Use a concrete target for @see and keep author email consistent.

Proposed diff:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\FileDetector\FileSet
  *
  * @package ComposerTranslationValidator
  */
tests/src/Utility/OutputUtilityTest.php (1)

30-37: Replace placeholder @see and align author email.

Reference the class under test and standardize the email.

Proposed diff:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Utility\OutputUtility
  *
  * @package ComposerTranslationValidator
  */
src/FileDetector/SuffixFileDetector.php (1)

26-32: Docblock header added — looks good; verify author identity consistency.

The class-level author email differs from the file header block (hej@konradmichalik.dev vs km@move-elevator.de). Please align or confirm which should be canonical.

tests/src/FileDetector/SuffixFileDetectorTest.php (1)

29-36: Prefer a meaningful @see target or remove it.

Linking to google.de isn’t helpful for readers. Either point to project docs/repo or drop the tag.

Apply this diff to remove the placeholder link:

 /**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
- *
  * @package ComposerTranslationValidator
  */
src/Config/SchemaValidator.php (1)

81-84: Remove unreachable null-check after json_decode with JSON_THROW_ON_ERROR.

With JSON_THROW_ON_ERROR, json_decode will throw on invalid JSON and won’t return null. This branch is dead code.

Apply this diff:

-        $schema = json_decode($schemaContent, false, 512, JSON_THROW_ON_ERROR);
-        if (null === $schema) {
-            throw new RuntimeException('Invalid JSON Schema file: '.self::SCHEMA_PATH);
-        }
+        $schema = json_decode($schemaContent, false, 512, JSON_THROW_ON_ERROR);
src/Parser/JsonParser.php (1)

94-96: Outdated comment about an $attribute parameter.

The method signature doesn’t include $attribute; the note seems stale. Remove to avoid confusion.

Apply this diff:

-        // Note: the $attribute parameter is required by ParserInterface
-        // but is not used for JSON, since JSON has no source/target concept.
tests/src/Result/ValidationStatisticsTest.php (1)

29-37: Replace placeholder @see; align author/package

Use a meaningful target for @see and keep author/package consistent with the chosen convention.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Result\ValidationStatistics
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
src/Config/ConfigFileReader.php (1)

31-37: Standardize docblock metadata (author/package); avoid duplicating license details

Keep email consistent with file header, and prefer Composer package name or drop @package. Consider relying on the single file header for license text.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
tests/src/Config/ConfigFileReaderTest.php (1)

33-41: Use a relevant @see and align metadata

Point @see to the class under test and standardize author/package.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Config\ConfigFileReader
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
src/Utility/PathUtility.php (1)

26-32: Unify author email and package naming; consider deduping license info

Keep author email consistent with the file header; prefer Composer package name or drop @package. Optional: store license details only in the file header.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
tests/src/Utility/PathUtilityTest.php (1)

29-36: Docblock metadata tweaks (replace placeholder link, drop redundant tags, verify author consistency).

  • Replace @see https://google.de with a project-relevant URL (repo, docs) or remove.
  • @package is generally redundant with namespaces; consider removing to reduce noise.
  • Author differs from the file header (km@move-elevator.de vs hej@konradmichalik.dev). Please confirm intended identity/emails and align across files.

Recommended patch:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
+ * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @license GPL-3.0-or-later
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
tests/src/Utility/PathUtilityExtendedTest.php (1)

31-39: Reorder docblock and attribute to follow PSR-12 (docblock before attributes).

Place the class docblock above the #[CoversClass(...)] attribute to match common tooling expectations and PSR-12 guidance.

Also consider replacing the placeholder @see and removing @package as noted elsewhere.

Recommended patch:

-#[CoversClass(PathUtility::class)]
-/**
+/**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
+#[CoversClass(PathUtility::class)]
tests/src/Validator/ResultTypeTest.php (1)

30-38: Docblock cleanup: replace placeholder link and consider dropping @Package.

  • Swap @see https://google.de for a relevant project link or remove.
  • @package is unnecessary with namespaces.

Recommended patch:

 /**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
src/Validator/HtmlTagValidator.php (1)

37-43: Avoid duplicating license metadata at both file-header and class-level.

You already include a full GPL header at the top of the file. Keeping @license in the class docblock can drift out of sync. Consider removing @license (or the entire class docblock if it only repeats header info).

Recommended patch:

 /**
  * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @package ComposerTranslationValidator
+ * @package ComposerTranslationValidator
  */
tests/src/Parser/YamlParserTest.php (1)

31-39: Docblock polish: fix @see target and remove @Package.

  • Replace @see https://google.de with a meaningful reference (repo/docs) or omit.
  • @package adds little value with namespaces.

Recommended patch:

 /**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
tests/src/Command/ValidateTranslationCommandConfigTestSimple.php (1)

31-38: Replace placeholder @see and align author email with header.

Use a project-relevant link and pick one canonical author email across headers/docblocks.

Proposed tweak:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Result/IssueTest.php (1)

29-36: Docblock polish: replace @see target and unify author email.

Same as other files: avoid placeholder URL and keep author email consistent with the file header.

Proposed change:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
src/Utility/ClassUtility.php (1)

28-34: Docblock consistency with file header.

The top-of-file header uses km@move-elevator.de; docblock uses a different email and a placeholder @see is missing. Align for consistency, or confirm both are intentional.

Suggested:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
+ * @see https://github.com/move-elevator/composer-translation-validator
+ *
  * @package ComposerTranslationValidator
  */
src/Validator/AbstractValidator.php (1)

34-40: Use a meaningful @see and standardize author email.

Mirror the project header/email and reference the repo (or package docs) instead of a placeholder link.

Proposed edit:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
+ * @see https://github.com/move-elevator/composer-translation-validator
+ *
  * @package ComposerTranslationValidator
  */
tests/src/Validator/KeyDepthValidatorTest.php (1)

34-42: Swap placeholder @see for repo URL and keep author email consistent.

Minor docblock hygiene to match other files and avoid external placeholder links.

Proposed change:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
src/Service/ValidationOrchestrationService.php (1)

37-43: Unify author email with file header.

Top header uses km@move-elevator.de, but the @author tag uses hej@konradmichalik.dev. Pick one canonical address and apply consistently.

src/Result/ValidationRun.php (1)

34-40: Consistency: author email differs from file header.

Header block has km@move-elevator.de; the @author tag uses hej@konradmichalik.dev. Standardize across files.

src/Config/ConfigFactory.php (1)

28-34: Standardize author email across repository

Replace all @author tags from <hej@konradmichalik.dev> to <km@move-elevator.de> so they match the header copyrights throughout.

Example in src/Config/ConfigFactory.php:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
tests/src/Config/ConfigFactoryTest.php (1)

30-38: Replace placeholder @see; add @Covers; unify author email

Point @see to the class under test and optionally annotate coverage.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Config\ConfigFactory
+ * @covers \MoveElevator\ComposerTranslationValidator\Config\ConfigFactory
  *
  * @package ComposerTranslationValidator
  */
tests/src/Parser/AbstractParserTest.php (2)

33-41: Docblock polish for test helper class

Standardize email, replace @see with relevant FQCN, and mark helper as internal to tests.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Parser\AbstractParser
+ * @internal Test-only helper
  *
  * @package ComposerTranslationValidator
  */

50-58: Replace placeholder @see; add @Covers; unify author email

Align metadata with project and improve test annotations.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Parser\AbstractParser
+ * @covers \MoveElevator\ComposerTranslationValidator\Parser\AbstractParser
  *
  * @package ComposerTranslationValidator
  */
src/Command/ValidateTranslationCommand.php (1)

45-51: Unify author email in class docblock

Match the file header’s author email for consistency.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
  * @package ComposerTranslationValidator
  */
tests/src/Result/ValidationResultTest.php (1)

32-40: Replace placeholder @see; add @Covers; unify author email

Point to the SUT and annotate coverage.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Result\ValidationResult
+ * @covers \MoveElevator\ComposerTranslationValidator\Result\ValidationResult
  *
  * @package ComposerTranslationValidator
  */
tests/src/Utility/ClassUtilityTest.php (3)

34-41: Replace placeholder @see and align author email with file header

Use a canonical contact and a meaningful @see (e.g., repo URL). Keeps headers consistent with the file-level copyright block.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */

45-53: Mirror the same docblock cleanups for InvalidClass

Unify author email and replace the placeholder @see.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */

56-64: Do the same for ClassUtilityTest docblock

Keep metadata consistent across the file.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Result/ValidationResultCliRendererTest.php (1)

38-46: Docblock: replace placeholder @see and standardize author email

Matches the top-of-file header and avoids placeholder links.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/composer.json (1)

20-20: Confirm intent of making verbose the default for translation:xliff:all

If you still need a non-verbose run for local checks, consider adding a separate alias (e.g., translation:xliff:all:verbose) and keeping the original quiet. Otherwise, this change looks fine.

src/FileDetector/PrefixFileDetector.php (1)

26-32: Docblock author email differs from file header

Align to the same contact used in the file-level header for consistency.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
  * @package ComposerTranslationValidator
  */
tests/src/FileDetector/PrefixFileDetectorTest.php (1)

29-37: Docblock tweaks: unify author email and replace placeholder @see

Same reasoning as other files.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Parser/ParserCacheTest.php (1)

33-40: Replace placeholder @see and align author email with file header

Use a meaningful project URL and keep the author email consistent with the file-level header.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Parser/PhpParserTest.php (1)

31-38: Replace placeholder @see and align author email with file header

Mirror the email used in the file header and point @see to the repo (or remove it).

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Validator/HtmlTagValidatorTest.php (1)

40-47: Replace placeholder @see and align author email with file header

Same consistency tweak as in other test files.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
src/Capability/ValidateTranslationCommandProvider.php (1)

29-35: Docblock consistency and static analysis hint

Unify email with header and add @implements for analyzers.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
  * @package ComposerTranslationValidator
+ * @implements CommandProvider
  */
tests/src/Capability/ValidateTranslationCommandProviderTest.php (1)

30-38: Replace placeholder @see and align author email with file header

Keep metadata consistent and avoid placeholder links.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
tests/src/Config/SchemaValidatorTest.php (1)

206-231: Docblock on anonymous class: unusual placement and low tooling value.

Placing a docblock between new and class is valid but uncommon and may confuse fixers. Prefer a small named helper class for clarity.

Proposed refactor:

-        $validator = new
-/**
- * @author Konrad …
- */
-class extends SchemaValidator {
+        /**
+         * Test double: forces SchemaValidator::isAvailable() to return false.
+         */
+        $validator = new class extends SchemaValidator {

Or extract to a named inner class (e.g., SchemaValidatorUnavailable) above the test.

.php-cs-fixer.php (1)

51-51: Guard the custom fixer and update the misleading comment

  • The “Temporarily disabled” comment is misleading—the fixer is still being registered.
  • Wrap the new KonradMichalik\PhpDocBlockHeaderFixer\Rules\DocBlockHeaderFixer() call in a class_exists(...) check to avoid a fatal if the dev dependency isn’t installed.
  • Align the author email in the DocBlockHeader::create(...) call with the file header (Konrad Michalik <km@move-elevator.de>).
tests/src/Result/ValidationRunTest.php (4)

37-45: Replace placeholder @see and align author email.

Use the repo URL and a single canonical author email for consistency with headers.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

235-243: Docblock on test double: keep metadata consistent.

Same nits: replace @see and unify author. Consider adding a brief purpose line (e.g., “Mock parser for counting keys in stats tests”).

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

283-291: Docblock metadata consistency (validator without issues).

Align @see URL and author email with project-wide choice.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

361-369: Docblock metadata consistency (validator with issues).

Same as above: fix @see and author email. Also optionally tag as “Test double for issue distribution.”

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/Parser/XliffParserTest.php (2)

31-39: Standardize docblock header.

Replace placeholder @see and unify author email across the repo.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

259-279: Anonymous helper class docblock placement.

Keep the docblock adjacent to class (or switch to a tiny named helper class). Also standardize the @see URL.

-        $validator = new
-/**
+        $validator = new
+/**
  * @author Konrad …
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
 class {

If php-cs-fixer flags the placement, convert to a named local class above the test.

tests/src/Parser/JsonParserTest.php (2)

31-39: Docblock header consistency.

Replace @see placeholder and align author email with the chosen canonical one.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

126-145: Anonymous validator docblock: style and utility.

Same nits as elsewhere; also consider turning this into a small named class (FileGetContentsFailureProbe) to improve readability and avoid unusual new /** */ class syntax.

-        $validator = new
-/**
+        $validator = new
+/**
  * @author Konrad …
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  */
 class {
tests/src/Validator/AbstractValidatorTest.php (5)

38-45: Replace placeholder @see URL

@see points to google.de. Suggest linking to the repository or relevant docs instead.

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

102-110: Replace placeholder @see URL (TestParser)

Same placeholder link here—swap for a meaningful target or drop it.

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

151-159: Replace placeholder @see URL (AbstractValidatorTest)

Use a project link or remove the tag to avoid noise in generated docs.

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

380-407: Anonymous class docblock placement

Attaching a docblock to an anonymous class (between new and class) is unusual and won’t be discoverable via reflection/doc tooling. Prefer a named local test double or move the comment above the assignment as a regular comment.


391-396: Silence PHPMD UnusedFormalParameter in test double

processFile(ParserInterface $file) doesn’t use $file (PHPMD: UnusedFormalParameter). Easiest fix: unset it.

-    public function processFile(ParserInterface $file): array
-    {
-        return [];
-    }
+    public function processFile(ParserInterface $file): array
+    {
+        // Intentionally unused in this test double.
+        unset($file);
+        return [];
+    }

Alternative: add @SuppressWarnings(PHPMD.UnusedFormalParameter) to the method docblock.

src/Result/ValidationResultGitHubRenderer.php (1)

28-34: Docblock added — minor metadata consistency check

Looks good. Optional: ensure author/contact here matches your project conventions, and consider dropping @package if your CS rules don’t require it (namespaces make it redundant).

src/FileDetector/Collector.php (1)

34-40: Docblock added — minor tidy-up

LGTM. Same optional note as elsewhere: align author/contact and drop @package if not needed by your fixer config.

src/Result/ValidationResultCliRenderer.php (1)

35-41: Docblock added — consistent metadata

All good. Consider whether duplicating author/license at both file- and class-level is desired; if not, keep only one per your CS policy.

tests/src/Validator/KeyNamingConventionValidatorTest.php (1)

36-44: Replace placeholder @see URL

Swap https://google.de for the repo URL or remove the tag.

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/Result/ValidationResultGitHubRendererTest.php (1)

37-44: Replace placeholder @see and align metadata for consistency

  • Swap the placeholder @see https://google.de with a relevant symbol or repo reference.
  • Consider using a consistent author contact across header and class docblocks.
  • Optional: Set @package to the Composer package name for precision.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Result\ValidationResultGitHubRenderer
  *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
  */
tests/src/Validator/KeyCountValidatorTest.php (1)

33-40: Use meaningful @see target and precise package name

  • Point @see to the class under test.
  • Prefer Composer package name in @package for clarity.
  • Optional: add @covers \...KeyCountValidator for test coverage mapping.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Validator\KeyCountValidator
  *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
+ * @covers \MoveElevator\ComposerTranslationValidator\Validator\KeyCountValidator
  */
tests/src/Validator/KeyNamingConventionValidatorConfigTest.php (1)

32-40: Tighten docblock references; avoid placeholder links

  • Replace the @see URL with the validator FQCN.
  • Align author email with the file header.
  • Optional: add a @covers tag.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Validator\KeyNamingConventionValidator
  *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
+ * @covers \MoveElevator\ComposerTranslationValidator\Validator\KeyNamingConventionValidator
  */
src/Validator/DuplicateKeysValidator.php (1)

33-39: Docblock fine-tune: add meaningful @see and optional summary

  • Add an explicit @see to related tests or interfaces.
  • Optional: Add a one-line summary describing the validator’s purpose.
  • Consider keeping author contact consistent with headers.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * Duplicate-keys validator for translation sources.
+ *
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @see \MoveElevator\ComposerTranslationValidator\Tests\Validator\DuplicateKeysValidatorTest
+ * @package move-elevator/composer-translation-validator
  */
tests/src/Validator/DuplicateValuesValidatorTest.php (1)

36-44: Replace placeholder @see and standardize metadata

  • Point @see to the validator class.
  • Use Composer package name in @package.
  • Optional: add @covers for PHPUnit coverage.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Validator\DuplicateValuesValidator
  *
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
+ * @covers \MoveElevator\ComposerTranslationValidator\Validator\DuplicateValuesValidator
  */
tests/src/Validator/DuplicateKeysValidatorTest.php (1)

31-38: Retain existing author email; replace placeholder @see links
Keep @author hej@konradmichalik.dev (consistent across all PHP files) and update in this—and every test file referencing https://google.de—the docblock to:

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/PluginTest.php (1)

31-38: Use a real project link and keep author info consistent across headers.
Replace the @see google.de placeholder and align the author email with the file’s copyright header.

tests/src/PluginExtendedTest.php (1)

33-40: Docblock placement vs attribute: verify tool compatibility.
The docblock sits after #[CoversClass(...)] and before the class. Most tools handle this, but some require the docblock to be directly adjacent to the declaration. If your fixer/docs tooling doesn’t pick it up, move the docblock above the attribute.

src/Validator/ValidatorRegistry.php (1)

26-31: Minor metadata nit: align author email with the file header.
Header block uses km@move-elevator.de while this docblock uses a different address. Choose one and apply consistently across files.

src/Validator/EncodingValidator.php (1)

34-40: Minor metadata nit: keep author contact consistent.
Align the author email here with the file-level header to avoid mixed identities in generated docs.

src/Validator/DuplicateValuesValidator.php (1)

33-39: Docblock header looks good; minor author/email consistency nit

File header lists km@move-elevator.de while the class docblock uses hej@konradmichalik.dev. Pick one per your policy to avoid churn.

Proposed tweak:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
tests/src/Result/ValidationResultJsonRendererTest.php (1)

37-45: Replace placeholder @see link with a meaningful target

Use the FQCN or repo URL instead of google.de.

- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Result\ValidationResultJsonRenderer
tests/src/Result/ValidationResultRendererFactoryTest.php (1)

35-43: Swap out placeholder @see

Point to the factory under test for better IDE navigation.

- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Result\ValidationResultRendererFactory
tests/src/Validator/PlaceholderConsistencyValidatorTest.php (1)

40-48: Update @see to reference the subject under test

Avoid placeholder links in headers.

- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Validator\PlaceholderConsistencyValidator
src/Validator/XliffSchemaValidator.php (1)

33-38: Unify author identity and package tag

File header uses km@move-elevator.de while the class docblock uses hej@konradmichalik.dev. Pick one and apply consistently. Also consider aligning @Package with the Composer package name (likely move-elevator/composer-translation-validator).

Proposed edit:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
@@
- * @package ComposerTranslationValidator
+ * @package move-elevator/composer-translation-validator
tests/src/FileDetector/CollectorTest.php (1)

34-41: Replace placeholder @see link

@see points to https://google.de. Replace with a relevant reference (repo, class under test) or drop it.

Proposed edit:

- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
tests/src/FileDetector/DirectoryFileDetectorTest.php (1)

29-36: Unify author/email and replace placeholder @see link.

  • Author email here differs from the file header (hej@konradmichalik.dev vs km@move-elevator.de). Pick one and use consistently.
  • @see points to google.de; replace with the repository URL or drop it.
  • Optional: @Package could be namespaced (MoveElevator\ComposerTranslationValidator) or omitted.

Apply:

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
- * @package ComposerTranslationValidator
+ * @package MoveElevator\ComposerTranslationValidator
  */
tests/src/Validator/MismatchValidatorTest.php (1)

32-39: Docblock polish: email consistency and @see target.

Same as other files: align author email with the file header and replace the google.de @see. Consider namespacing or dropping @Package.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
- * @package ComposerTranslationValidator
+ * @package MoveElevator\ComposerTranslationValidator
  */
src/Plugin.php (1)

33-38: Header metadata consistency.

  • Align author email with the file header block.
  • Optional: use namespaced @Package or remove.
 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package MoveElevator\ComposerTranslationValidator
  */
tests/src/FileDetector/FileDetectorRegistryTest.php (1)

33-40: Replace placeholder link and standardize author/package.

Mirror the same adjustments here for email, @see, and package.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
- * @package ComposerTranslationValidator
+ * @package MoveElevator\ComposerTranslationValidator
  */
src/Validator/PlaceholderConsistencyValidator.php (1)

37-43: Minor: author email + package tag.

Keep the author email consistent across headers and consider namespaced or omitted @Package.

 /**
- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
  * @license GPL-3.0-or-later
  *
- * @package ComposerTranslationValidator
+ * @package MoveElevator\ComposerTranslationValidator
  */
src/Validator/KeyCountValidator.php (1)

34-40: Unify author identity with file header.

Top header uses km@move-elevator.de while the class docblock uses hej@konradmichalik.dev. Pick one and apply consistently across files.

Apply:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
src/Validator/MismatchValidator.php (1)

37-43: Align docblock author with file header.

Header: km@move-elevator.de; docblock: hej@konradmichalik.dev. Standardize.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
src/Validator/KeyNamingConventionValidator.php (1)

36-42: Consistent author email.

Match the file’s copyright header email.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
src/FileDetector/FileDetectorRegistry.php (1)

26-32: Standardize author tag with header.

Unify to the same email used in the file header.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
tests/src/Validator/EncodingValidatorTest.php (3)

37-45: Remove unrelated @see from test class header.

Linking to google.de adds noise; drop or replace with project URL.

- * @see https://google.de
-

212-237: Avoid docblock between new and class for anonymous classes.

Some tooling won’t associate that docblock; keep it anonymous or extract a named helper class with a header above it.

-$validator = new
-/**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
- */
-
-class($logger) extends EncodingValidator {
+// Anonymous helper; docblock removed for compatibility with tooling.
+$validator = new class($logger) extends EncodingValidator {
     public function processFile(\MoveElevator\ComposerTranslationValidator\Parser\ParserInterface $file): array
     {
         // Simulate file_get_contents returning false
         $content = @file_get_contents($file->getFilePath()); // Suppress warning with @
         if (false === $content) {
             $this->logger?->error(
                 'Could not read file content: '.$file->getFileName(),
             );
 
             return [];
         }
 
         return parent::processFile($file);
     }
 };

258-281: Same: remove docblock before anonymous class and avoid /dev/null.

  • Keep the anonymous class clean (or extract a named helper).
  • Prefer a cross‑platform empty source (e.g., an actual empty temp file or php://temp) over /dev/null.
-$validator = new
-/**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
- */
-
-class extends EncodingValidator {
+$validator = new class extends EncodingValidator {
     /**
      * @return array<string, mixed>
      */
     public function testEmptyContent(): array
     {
-        $content = file_get_contents('/dev/null'); // This returns '' (empty string)
+        // Prefer cross-platform source; php://temp returns '' if nothing was written.
+        $content = file_get_contents('php://temp');
         if ('' === $content) {
             return [];
         }
 
         return ['should_not_reach' => 'this'];
     }
 };
tests/src/Validator/SchemaValidatorTest.php (4)

273-303: Avoid docblock between new and anonymous class

Placing a docblock between new and class is syntactically valid but unusual, noisy, and may confuse tooling. Attach metadata to the file/class header instead.

Apply:

-        $validator = new
-/**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
- */
-
-class($logger) extends XliffSchemaValidator {
+        $validator = new class($logger) extends XliffSchemaValidator {

320-356: Same: remove inline docblock on anonymous class

Keep the anonymous class creation compact; move metadata to the file/class header.

-        $validator = new
-/**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
- */
-
-class($logger) extends XliffSchemaValidator {
+        $validator = new class($logger) extends XliffSchemaValidator {

375-410: Same: remove inline docblock on anonymous class

Redundant metadata; prefer header-level docs.

-        $validator = new
-/**
- * @author Konrad Michalik <hej@konradmichalik.dev>
- * @license GPL-3.0-or-later
- *
- * @see https://google.de
- *
- * @package ComposerTranslationValidator
- */
-
-class($logger) extends XliffSchemaValidator {
+        $validator = new class($logger) extends XliffSchemaValidator {

32-39: Replace placeholder @see links

All docblocks in both src/ and tests/ include “@see https://google.de”. Update these to the project/repo URL (e.g. the GitHub repository) or remove the tag. The author email is already consistent as “Konrad Michalik hej@konradmichalik.dev”—no change needed.

tests/src/Result/AbstractValidationResultRendererTest.php (2)

33-40: Docblock metadata: replace placeholder link and ensure consistency

  • Replace "@see https://google.de" with the repository/project URL or remove.
  • Ensure the author email matches the chosen canonical address across files.

189-197: Docblock on helper test double: keep minimal

For internal test doubles, consider omitting full author/license/package docblocks to reduce noise; rely on the file header. If you keep it, replace the placeholder "@see" URL and align the author email.

Comment on lines +36 to +43
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Attach the PHPDoc to the class (place it before attributes) and avoid placeholder links.

Current position puts the docblock after an attribute; move it above. Replace @see with a repository/docs URL.

-#[CoversClass(ConfigReader::class)]
-/**
+/**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
+#[CoversClass(ConfigReader::class)]

Email also differs from the file header (km@move-elevator.de); consider unifying.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://github.com/move-elevator/composer-translation-validator
*
* @package ComposerTranslationValidator
*/
#[CoversClass(ConfigReader::class)]
🤖 Prompt for AI Agents
In tests/src/Config/ConfigReaderTest.php around lines 36 to 43, the PHPDoc block
is placed after a PHP attribute and contains a placeholder @see link and an
author email that doesn't match the file header; move the entire docblock so it
immediately precedes the class declaration (i.e., above any attributes), replace
the @see line with a real repository or docs URL (e.g., project repo or docs
page), and update the @author email to match the file header
(km@move-elevator.de) so the metadata is consistent.

Comment on lines +34 to +41
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Standardize docblock metadata (author/see/package).

  • Author email differs from the file header. Pick one canonical email and apply project-wide.
  • Replace the placeholder @see URL with the repository homepage.

Apply this minimal change here:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

Run to find remaining mismatches:


🏁 Script executed:

#!/bin/bash
rg -nP '@see\s+https?://google\.de|@author.*<(hej@konradmichalik\.dev|km@move-elevator\.de)>' -S

Length of output: 18128


Standardize docblock metadata across the entire repository.

Docblocks still use the old author email <hej@konradmichalik.dev> and placeholder @see https://google.de. Update every occurrence to the canonical values:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator

Then verify no mismatches remain:

rg -nP '@see\s+https?://google\.de|@author.*<(hej@konradmichalik\.dev|km@move-elevator\.de)>' -S
🤖 Prompt for AI Agents
In tests/src/Config/SchemaValidatorTest.php around lines 34 to 41, the docblock
contains outdated metadata: the author email hej@konradmichalik.dev and a
placeholder @see https://google.de; replace these with the repository's
canonical metadata—set the @author to the project's canonical author/name and
email used across the repo (e.g., Move Elevator <team@move-elevator.de>) and
update @see to the canonical project URL (e.g.,
https://github.com/move-elevator/composer-translation-validator); then run the
provided ripgrep command to verify no remaining matches.

Comment on lines +32 to +39
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Reorder: docblock before attribute; update @see.

Ensure the class PHPDoc precedes attributes; swap order and replace the @see target.

-#[CoversClass(TranslationValidatorConfig::class)]
-/**
+/**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
+#[CoversClass(TranslationValidatorConfig::class)]

Consider aligning the author email with the file header’s address.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://github.com/move-elevator/composer-translation-validator
*
* @package ComposerTranslationValidator
*/
#[CoversClass(TranslationValidatorConfig::class)]
🤖 Prompt for AI Agents
In tests/src/Config/TranslationValidatorConfigTest.php around lines 32 to 39,
the class PHPDoc is placed after an attribute and the @see tag points to an
incorrect URL; move the docblock so it appears immediately before the
class/attribute declaration, update the @see target to the correct URL (replace
https://google.de with the intended reference), and optionally align the author
email to match the file header email; ensure spacing and annotation order follow
PSR-12 conventions.

Comment on lines +38 to +46
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Move class PHPDoc above attributes so it’s attached to the class.

Docblocks must precede attributes to be associated with the class in reflection/tooling. Also, replace the placeholder @see link.

Apply:

-#[CoversClass(ValidationOrchestrationService::class)]
-/**
+/**
  * @author Konrad Michalik <hej@konradmichalik.dev>
  * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see https://github.com/move-elevator/composer-translation-validator
  *
  * @package ComposerTranslationValidator
  */
+#[CoversClass(ValidationOrchestrationService::class)]

Note: The file header uses km@move-elevator.de; consider aligning the email here as well.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://google.de
*
* @package ComposerTranslationValidator
*/
/**
* @author Konrad Michalik <hej@konradmichalik.dev>
* @license GPL-3.0-or-later
*
* @see https://github.com/move-elevator/composer-translation-validator
*
* @package ComposerTranslationValidator
*/
#[CoversClass(ValidationOrchestrationService::class)]
🤖 Prompt for AI Agents
In tests/src/Service/ValidationOrchestrationServiceTest.php around lines 38 to
46, the class PHPDoc block is placed after the class attributes so it is not
attached to the class; move the entire docblock so it immediately precedes the
class declaration (above any attributes) so reflection/tools associate it with
the class, replace the placeholder @see URL with a meaningful reference or
remove it, and update the author email to km@move-elevator.de to match the file
header.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
tests/src/Config/SchemaValidatorTest.php (2)

34-41: Standardize docblock metadata (author/email and @see URL).

Match the file header and project URL to keep metadata consistent.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- *
- * @see https://google.de
+ *
+ * @see https://github.com/move-elevator/composer-translation-validator

Run to verify repo-wide consistency:

#!/bin/bash
rg -nP '@see\s+https?://google\.de|@author.*<(hej@konradmichalik\.dev)>' -S

206-211: Apply the same metadata fix to the anonymous class docblock.

Use the canonical email and repository URL here as well.

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
- *
- * @see https://google.de
+ *
+ * @see https://github.com/move-elevator/composer-translation-validator
🧹 Nitpick comments (13)
src/Command/ValidateTranslationCommand.php (1)

45-50: Unify author email between header and class DocBlock.

Top-of-file header (Line 8) uses km@move-elevator.de, while the class DocBlock (Line 48) uses hej@konradmichalik.dev. Pick one for consistency (ideally the project domain).

Apply this diff if you want to match the file header:

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>
tests/src/Parser/ParserRegistryTest.php (4)

37-37: Unify author email with the file header

Header block uses km@move-elevator.de; class docblock uses hej@konradmichalik.dev. Pick one and keep it consistent repo-wide (suggest matching the header).

- * @author Konrad Michalik <hej@konradmichalik.dev>
+ * @author Konrad Michalik <km@move-elevator.de>

40-40: Replace placeholder @see link

google.de looks like a placeholder. Point to the class under test or the repository.

- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Parser\ParserRegistry

38-38: Avoid duplicate license at class level

License is already covered by the file header above; duplicating it in the class docblock adds maintenance burden.

- * @license GPL-3.0-or-later

34-41: Optional: add @Covers to improve coverage mapping

Helps static analysis and CI reports tie this test to the target class.

 /**
  * ParserRegistryTest.
  *
+ * @covers \MoveElevator\ComposerTranslationValidator\Parser\ParserRegistry
  * @author Konrad Michalik <km@move-elevator.de>
- * @license GPL-3.0-or-later
  *
- * @see https://google.de
+ * @see \MoveElevator\ComposerTranslationValidator\Parser\ParserRegistry
  */
tests/src/Validator/AbstractValidatorTest.php (4)

38-46: Docblock OK; replace placeholder @see

The @see points to google.de. Either drop it or link to the repository/readme for relevance.


101-109: Docblock OK; replace placeholder @see

Same note as above—avoid placeholder links in tests.


149-157: Docblock OK; replace placeholder @see

Same nit: swap the @see with a project-relevant URL or remove.


376-401: Silence PHPMD unused parameter; consider moving the inline docblock

  • PHPMD flags $file as unused in processFile. Add unset($file);.
  • The docblock placed between new and class is unusual; if any tooling chokes on it, move the docblock above the $validator = new line or drop it.

Apply within this hunk:

-    public function processFile(ParserInterface $file): array
-    {
-        return [];
-    }
+    public function processFile(ParserInterface $file): array
+    {
+        unset($file);
+        return [];
+    }
tests/src/Result/ValidationRunTest.php (4)

37-44: Docblock OK; replace placeholder @see

Replace google.de with a meaningful reference or remove.


234-241: Docblock OK; replace placeholder @see

Same nitpick for the mock parser.


281-288: Docblock OK; replace placeholder @see

Same nitpick for MockValidatorWithoutIssues.


358-365: Docblock OK; replace placeholder @see

Same nitpick for MockValidatorWithIssues.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 76df6f7 and ade10f3.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (107)
  • .php-cs-fixer.php (2 hunks)
  • composer.json (1 hunks)
  • src/Capability/ValidateTranslationCommandProvider.php (1 hunks)
  • src/Command/ValidateTranslationCommand.php (1 hunks)
  • src/Config/ConfigFactory.php (1 hunks)
  • src/Config/ConfigFileReader.php (1 hunks)
  • src/Config/ConfigReader.php (1 hunks)
  • src/Config/ConfigValidator.php (1 hunks)
  • src/Config/SchemaValidator.php (1 hunks)
  • src/Config/TranslationValidatorConfig.php (1 hunks)
  • src/Enum/KeyNamingConvention.php (1 hunks)
  • src/FileDetector/Collector.php (1 hunks)
  • src/FileDetector/DetectorInterface.php (1 hunks)
  • src/FileDetector/DirectoryFileDetector.php (1 hunks)
  • src/FileDetector/FileDetectorRegistry.php (1 hunks)
  • src/FileDetector/FileSet.php (1 hunks)
  • src/FileDetector/PrefixFileDetector.php (1 hunks)
  • src/FileDetector/SuffixFileDetector.php (1 hunks)
  • src/Parser/AbstractParser.php (1 hunks)
  • src/Parser/JsonParser.php (1 hunks)
  • src/Parser/ParserCache.php (1 hunks)
  • src/Parser/ParserInterface.php (1 hunks)
  • src/Parser/ParserRegistry.php (1 hunks)
  • src/Parser/PhpParser.php (1 hunks)
  • src/Parser/XliffParser.php (1 hunks)
  • src/Parser/YamlParser.php (1 hunks)
  • src/Plugin.php (1 hunks)
  • src/Result/AbstractValidationResultRenderer.php (1 hunks)
  • src/Result/FormatType.php (1 hunks)
  • src/Result/Issue.php (1 hunks)
  • src/Result/Output.php (1 hunks)
  • src/Result/ValidationResult.php (1 hunks)
  • src/Result/ValidationResultCliRenderer.php (1 hunks)
  • src/Result/ValidationResultGitHubRenderer.php (1 hunks)
  • src/Result/ValidationResultJsonRenderer.php (1 hunks)
  • src/Result/ValidationResultRendererFactory.php (1 hunks)
  • src/Result/ValidationResultRendererInterface.php (1 hunks)
  • src/Result/ValidationRun.php (1 hunks)
  • src/Result/ValidationStatistics.php (1 hunks)
  • src/Service/ValidationOrchestrationService.php (1 hunks)
  • src/Utility/ClassUtility.php (1 hunks)
  • src/Utility/OutputUtility.php (1 hunks)
  • src/Utility/PathUtility.php (1 hunks)
  • src/Validator/AbstractValidator.php (1 hunks)
  • src/Validator/DuplicateKeysValidator.php (1 hunks)
  • src/Validator/DuplicateValuesValidator.php (1 hunks)
  • src/Validator/EmptyValuesValidator.php (1 hunks)
  • src/Validator/EncodingValidator.php (1 hunks)
  • src/Validator/HtmlTagValidator.php (1 hunks)
  • src/Validator/KeyCountValidator.php (1 hunks)
  • src/Validator/KeyDepthValidator.php (1 hunks)
  • src/Validator/KeyNamingConventionValidator.php (1 hunks)
  • src/Validator/MismatchValidator.php (1 hunks)
  • src/Validator/PlaceholderConsistencyValidator.php (1 hunks)
  • src/Validator/ResultType.php (1 hunks)
  • src/Validator/ValidatorInterface.php (1 hunks)
  • src/Validator/ValidatorRegistry.php (1 hunks)
  • src/Validator/XliffSchemaValidator.php (1 hunks)
  • tests/src/Capability/ValidateTranslationCommandProviderTest.php (1 hunks)
  • tests/src/Command/ValidateTranslationCommandConfigTestSimple.php (1 hunks)
  • tests/src/Command/ValidateTranslationCommandTest.php (1 hunks)
  • tests/src/Config/ConfigFactoryTest.php (1 hunks)
  • tests/src/Config/ConfigFileReaderTest.php (1 hunks)
  • tests/src/Config/ConfigReaderTest.php (1 hunks)
  • tests/src/Config/ConfigValidatorTest.php (1 hunks)
  • tests/src/Config/SchemaValidatorTest.php (2 hunks)
  • tests/src/Config/TranslationValidatorConfigTest.php (1 hunks)
  • tests/src/Config/ValidatorSettingsConfigTest.php (1 hunks)
  • tests/src/FileDetector/CollectorTest.php (1 hunks)
  • tests/src/FileDetector/DirectoryFileDetectorTest.php (1 hunks)
  • tests/src/FileDetector/FileDetectorRegistryTest.php (1 hunks)
  • tests/src/FileDetector/FileSetTest.php (1 hunks)
  • tests/src/FileDetector/PrefixFileDetectorTest.php (1 hunks)
  • tests/src/FileDetector/SuffixFileDetectorTest.php (1 hunks)
  • tests/src/Parser/AbstractParserTest.php (2 hunks)
  • tests/src/Parser/JsonParserTest.php (2 hunks)
  • tests/src/Parser/ParserCacheTest.php (1 hunks)
  • tests/src/Parser/ParserRegistryTest.php (1 hunks)
  • tests/src/Parser/PhpParserTest.php (1 hunks)
  • tests/src/Parser/XliffParserTest.php (2 hunks)
  • tests/src/Parser/YamlParserTest.php (1 hunks)
  • tests/src/PluginExtendedTest.php (1 hunks)
  • tests/src/PluginTest.php (1 hunks)
  • tests/src/Result/AbstractValidationResultRendererTest.php (2 hunks)
  • tests/src/Result/FormatTypeTest.php (1 hunks)
  • tests/src/Result/IssueTest.php (1 hunks)
  • tests/src/Result/OutputTest.php (1 hunks)
  • tests/src/Result/ValidationResultCliRendererTest.php (1 hunks)
  • tests/src/Result/ValidationResultGitHubRendererTest.php (1 hunks)
  • tests/src/Result/ValidationResultJsonRendererTest.php (1 hunks)
  • tests/src/Result/ValidationResultRendererFactoryTest.php (1 hunks)
  • tests/src/Result/ValidationResultTest.php (1 hunks)
  • tests/src/Result/ValidationRunTest.php (4 hunks)
  • tests/src/Result/ValidationStatisticsTest.php (1 hunks)
  • tests/src/Service/ValidationOrchestrationServiceTest.php (1 hunks)
  • tests/src/Utility/ClassUtilityTest.php (1 hunks)
  • tests/src/Utility/OutputUtilityTest.php (1 hunks)
  • tests/src/Utility/PathUtilityExtendedTest.php (1 hunks)
  • tests/src/Utility/PathUtilityTest.php (1 hunks)
  • tests/src/Validator/AbstractValidatorTest.php (4 hunks)
  • tests/src/Validator/DuplicateKeysValidatorTest.php (1 hunks)
  • tests/src/Validator/DuplicateValuesValidatorTest.php (1 hunks)
  • tests/src/Validator/EmptyValuesValidatorTest.php (1 hunks)
  • tests/src/Validator/EncodingValidatorTest.php (3 hunks)
  • tests/src/Validator/HtmlTagValidatorTest.php (1 hunks)
  • tests/src/Validator/KeyCountValidatorTest.php (1 hunks)
  • tests/src/Validator/KeyDepthValidatorTest.php (1 hunks)
⛔ Files not processed due to max files limit (9)
  • tests/src/Validator/KeyNamingConventionValidatorConfigTest.php
  • tests/src/Validator/KeyNamingConventionValidatorTest.php
  • tests/src/Validator/MismatchValidatorTest.php
  • tests/src/Validator/PlaceholderConsistencyValidatorTest.php
  • tests/src/Validator/ResultTypeTest.php
  • tests/src/Validator/SchemaValidatorTest.php
  • tests/src/Validator/ValidatorInterfaceTest.php
  • tests/src/Validator/ValidatorRegistryTest.php
  • tests/src/Validator/XliffSchemaValidatorTest.php
✅ Files skipped from review due to trivial changes (36)
  • src/FileDetector/DirectoryFileDetector.php
  • src/FileDetector/DetectorInterface.php
  • src/Validator/ResultType.php
  • src/Service/ValidationOrchestrationService.php
  • src/Validator/ValidatorInterface.php
  • tests/src/Validator/EmptyValuesValidatorTest.php
  • src/Result/Output.php
  • src/Validator/EmptyValuesValidator.php
  • src/Validator/AbstractValidator.php
  • tests/src/Utility/PathUtilityTest.php
  • tests/src/Command/ValidateTranslationCommandTest.php
  • src/FileDetector/SuffixFileDetector.php
  • tests/src/Result/ValidationResultJsonRendererTest.php
  • tests/src/FileDetector/PrefixFileDetectorTest.php
  • src/Result/ValidationResultRendererInterface.php
  • tests/src/Result/ValidationStatisticsTest.php
  • src/Config/ConfigFileReader.php
  • tests/src/Parser/PhpParserTest.php
  • src/Validator/XliffSchemaValidator.php
  • src/Config/ConfigFactory.php
  • tests/src/FileDetector/FileDetectorRegistryTest.php
  • tests/src/Config/ValidatorSettingsConfigTest.php
  • src/Result/ValidationResultRendererFactory.php
  • tests/src/Command/ValidateTranslationCommandConfigTestSimple.php
  • tests/src/Config/TranslationValidatorConfigTest.php
  • src/Validator/KeyCountValidator.php
  • src/Enum/KeyNamingConvention.php
  • src/FileDetector/PrefixFileDetector.php
  • tests/src/Validator/KeyDepthValidatorTest.php
  • tests/src/Utility/PathUtilityExtendedTest.php
  • src/Parser/ParserCache.php
  • src/Parser/ParserInterface.php
  • tests/src/Config/ConfigFactoryTest.php
  • tests/src/Validator/DuplicateValuesValidatorTest.php
  • src/Utility/PathUtility.php
  • tests/src/Result/IssueTest.php
🚧 Files skipped from review as they are similar to previous changes (65)
  • tests/src/Capability/ValidateTranslationCommandProviderTest.php
  • src/FileDetector/Collector.php
  • src/Parser/ParserRegistry.php
  • src/Result/ValidationResult.php
  • src/Parser/JsonParser.php
  • tests/src/Result/OutputTest.php
  • tests/src/FileDetector/FileSetTest.php
  • tests/src/PluginExtendedTest.php
  • src/Validator/MismatchValidator.php
  • src/Result/AbstractValidationResultRenderer.php
  • tests/src/Parser/ParserCacheTest.php
  • tests/src/Service/ValidationOrchestrationServiceTest.php
  • src/Result/ValidationResultGitHubRenderer.php
  • src/Validator/KeyDepthValidator.php
  • src/Parser/AbstractParser.php
  • tests/src/Validator/HtmlTagValidatorTest.php
  • tests/src/Parser/AbstractParserTest.php
  • src/FileDetector/FileDetectorRegistry.php
  • src/Result/ValidationRun.php
  • composer.json
  • src/Parser/PhpParser.php
  • src/Config/TranslationValidatorConfig.php
  • tests/src/PluginTest.php
  • src/Utility/OutputUtility.php
  • tests/src/Validator/DuplicateKeysValidatorTest.php
  • src/Capability/ValidateTranslationCommandProvider.php
  • src/FileDetector/FileSet.php
  • tests/src/Config/ConfigFileReaderTest.php
  • src/Validator/PlaceholderConsistencyValidator.php
  • tests/src/Parser/YamlParserTest.php
  • tests/src/FileDetector/CollectorTest.php
  • src/Validator/DuplicateKeysValidator.php
  • tests/src/FileDetector/SuffixFileDetectorTest.php
  • src/Result/ValidationResultCliRenderer.php
  • tests/src/Validator/EncodingValidatorTest.php
  • tests/src/Result/ValidationResultGitHubRendererTest.php
  • src/Config/ConfigValidator.php
  • src/Plugin.php
  • src/Validator/KeyNamingConventionValidator.php
  • src/Utility/ClassUtility.php
  • src/Validator/EncodingValidator.php
  • tests/src/Config/ConfigValidatorTest.php
  • src/Result/ValidationResultJsonRenderer.php
  • src/Parser/XliffParser.php
  • src/Validator/HtmlTagValidator.php
  • src/Config/SchemaValidator.php
  • tests/src/Result/FormatTypeTest.php
  • tests/src/Utility/ClassUtilityTest.php
  • src/Validator/ValidatorRegistry.php
  • src/Result/Issue.php
  • src/Parser/YamlParser.php
  • tests/src/Config/ConfigReaderTest.php
  • tests/src/Utility/OutputUtilityTest.php
  • tests/src/FileDetector/DirectoryFileDetectorTest.php
  • src/Validator/DuplicateValuesValidator.php
  • src/Result/ValidationStatistics.php
  • tests/src/Parser/JsonParserTest.php
  • tests/src/Result/ValidationResultCliRendererTest.php
  • tests/src/Result/ValidationResultRendererFactoryTest.php
  • src/Config/ConfigReader.php
  • tests/src/Result/AbstractValidationResultRendererTest.php
  • tests/src/Validator/KeyCountValidatorTest.php
  • .php-cs-fixer.php
  • tests/src/Result/ValidationResultTest.php
  • tests/src/Parser/XliffParserTest.php
🧰 Additional context used
🧬 Code graph analysis (2)
tests/src/Validator/AbstractValidatorTest.php (3)
src/Validator/AbstractValidator.php (5)
  • AbstractValidator (40-244)
  • processFile (146-146)
  • supportsParser (151-151)
  • postProcess (153-157)
  • getShortName (238-243)
src/Validator/ValidatorInterface.php (3)
  • processFile (43-43)
  • supportsParser (56-56)
  • getShortName (96-96)
tests/src/Result/ValidationRunTest.php (6)
  • processFile (308-311)
  • processFile (385-388)
  • supportsParser (313-316)
  • supportsParser (390-393)
  • getShortName (352-355)
  • getShortName (439-442)
tests/src/Config/SchemaValidatorTest.php (1)
src/Config/SchemaValidator.php (3)
  • SchemaValidator (35-92)
  • validate (44-64)
  • isAvailable (88-91)
🪛 PHPMD (2.15.0)
tests/src/Validator/AbstractValidatorTest.php

385-385: Avoid unused parameters such as '$file'. (Unused Code Rules)

(UnusedFormalParameter)

🔇 Additional comments (2)
src/Command/ValidateTranslationCommand.php (1)

45-50: Docblock addition aligns with PR scope.

Author and license tags added; no functional changes. Looks good.

src/Result/FormatType.php (1)

26-32: License and PHP version alignment verified: composer.json declares “GPL-3.0-or-later” and sets the PHP requirement to ^8.1.

@konradmichalik konradmichalik merged commit 428440f into main Sep 7, 2025
28 checks passed
@konradmichalik konradmichalik deleted the doc-block-header branch September 7, 2025 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant