All Versions
53
Latest Version
Avg Release Cycle
98 days
Latest Release
1072 days ago

Changelog History
Page 1

  • v2.10.1 Changes

    May 11, 2021
    • Implemented #885: Allowing 2.0 version of the composer/xdebug-handler
  • v2.10.0 Changes

    April 26, 2021
    • ➕ Added #879: Documentation for Junit export with third party
    • ➕ Added #836: Provide option to allow reference to a class in the root namespace without an import
    • ➕ Added #856: Adds checkstyle compatible renderer, suitable for cs2pr or reviewdog
    • ➕ Added #858 in #865: Add SARIF renderer.
    • ➕ Added #873 and #876: Added option to baseline existing violations
    • ➕ Added #861: Docs for GitHub renderer
    • ➕ Added #868 In #869: Option to ignore globally-namespaced classes from MissingImport
    • ➕ Added #834 : Add "tool" property to main "pmd" tag in XML report
    • 🛠 Fixed #673 in #782: Ignore dynamic class name from missing imports
    • 🛠 Fixed #577 in #844: Recognize compact variables with double quotes
    • 🛠 Fixed #818 in #822: Fix passing-by-reference detection
    • 🛠 Fixed #826 in #827: Consider foreach exception only for direct children
    • 🛠 Fixed #851 in #852: Fix multiple underscores in method name when allow-underscore-test is allowed
    • 🛠 Fixed #846 in #847: Catch DevelopmentCodeFragment with fully qualified functions
    • 🛠 Fixed #829 in #835: Fatal error while analyzing anonymous class
    • 🛠 Fixed #816 in #818: Fixed undefined index referring
    • 🔄 Changed #786: Add convenience method AbstractNode::findChildrenOfTypeVariable()
    • 📚 Changed documentation: #874 #849 #724
    • 🔄 Changed #514 in #872: Change exit code on processing errors
    • 🔄 Changed: Internal code improvement #839 #875 #838 #862 #788 #830
    • 🔄 Changed #848 #864: Use GitHub actions
    • 👀 Deprecated: getIgnorePattern and setIgnorePattern on PHPMD\PHPMD see #772
  • v2.9.1 Changes

    September 23, 2020

    🛠 Fixed

    • 🛠 Fixed #714: Improved static member detection
    • 🛠 Fixed #816: Fixed undefined index referring

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.9.0 Changes

    September 02, 2020

    ➕ Added

    • ➕ Added #496: Add rule for PHP's @ operator
    • ➕ Added #737: Allowing custom exclusion for StaticAccess by extending the class
    • ➕ Added #749: Add allow-underscore option for CamelCaseParameterName & CamelCaseVariableName
    • ➕ Added #747: Long variable subtract suffix
    • ➕ Added #763 via #765: Added rules LongClassName and ShortClassName

    🔄 Changed

    🛠 Fixed

    • 🛠 Fixed #743: Output for version
    • 🛠 Fixed #754: Fixed #720 undefined variable in foreach when passed by reference
    • 🛠 Fixed #764: Fixed #718 Handle anonymous class in "undefined variable" rule
    • 🛠 Fixed #770: Fixed #769 Handle deconstruction assignation for undefined variable
    • 🛠 Fixed #781: Fixed #714 static:: and self:: properties access
    • 🛠 Fixed #784: Fixed #672 Handle passing-by-reference in native PHP functions
    • 🛠 Fixed #793: Fixed #580 Raise UnusedFormalParameter instead UnusedLocalVariable for unused closure parameter
    • 🛠 Fixed #794: Fixed #540 Detect unused variable declared multiple times
    • 🛠 Fixed #805: Fixed #802 Prevent an error with nested arrays
    • 🛠 Fixed #807: Fixed #790 Fix for short variables rule inside foreach statements
    • 🛠 Fixed #809: Fixed #808 Ignore rule path for supression annotation
    • 📚 Updated different parts of the documentation. #717 #736 #748 #811

    🗄 Deprecated

    • 👀 Deprecated all the PHPMD exceptions that aren't part of the PHPMD\Exceptions namespace. See #775

    A potential BC change:

    👍 With the clean-up in #768 we have a potential BC break in an unsupported part that we want to give attention for.

    The class aliases PHP_PMD_* used for PHPMD 1.x backwards PEAR compatibility were removed. If you happen to still depend on these, please adjust your code like so:

    From PHP_PMD_[Component]_[Class]' to PHPMD\[Component]\[Class],
    as in PHP_PMD_Renderer_HTMLRenderer' to PHPMD\Renderer\HTMLRenderer.
    👀 > See #768

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.8.2 Changes

    February 24, 2020

    🛠 Fixed

    • Fixed #732: Added __serialize and __unserialize to list of ignored methods for camelCase rule.

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.8.1 Changes

    December 27, 2019

    🛠 Fixed

    • 🛠 Fixed PHP 7.4 unit tests compatibility
    • 👌 Improved documentation
    • Automated website generation and PHAR publishing

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.8.0 Changes

    December 18, 2019

    ➕ Added

    • 🚀 Required at least pdepend/pdepend 2.6:
      • Added PHP 7.1 to 7.3 syntax support
      • Added Symfony 5 support
    • #571: Added ignore-namespaces property to DevelopmentCodeFragment rule
    • #595: Added a renderer which writes an ansi report string

    🛠 Fixed

    • 👌 Improved performances by disabling XDebug if in use
    • #657 Fix IfStatementAssignment violation message
    • #667: Be sure the phar file use the latest possible versions of dependencies (like pdepend)
    • #661: Fix IfStatementAssignment thrown incorrectly
    • #676: Handle @SuppressWarnings on each method for CountInLoop
    • ⚡️ #659: Update RuleSetFactory to be PHP 7.4 compatible
    • 📚 Update different parts of the documentation. #595 #645 #646 #648 #652 #665 #679 #691

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.8.0-beta.2 Changes

    December 16, 2019

    ➕ Added

    • 🚀 Required at least pdepend/pdepend 2.6:
      • Added PHP 7.1 to 7.3 syntax support
      • Added Symfony 5 support
    • #571: Added ignore-namespaces property to DevelopmentCodeFragment rule
    • #595: Added a renderer which writes an ansi report string

    🛠 Fixed

    • 👌 Improved performances by disabling XDebug if in use
    • #657 Fix IfStatementAssignment violation message
    • #667: Be sure the phar file use the latest possible versions of dependencies (like pdepend)
    • #661: Fix IfStatementAssignment thrown incorrectly
    • #676: Handle @SuppressWarnings on each method for CountInLoop
    • ⚡️ #659: Update RuleSetFactory to be PHP 7.4 compatible
    • 📚 Update different parts of the documentation. #595 #645 #646 #648 #652 #665 #679 #691

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.8.0-beta.1 Changes

    December 04, 2019

    ➕ Added

    • #571: Added ignore-namespaces property to DevelopmentCodeFragment rule
    • #595: Added a renderer which writes an ansi report string

    🛠 Fixed

    • 👌 Improved performances by disabling XDebug if in use
    • #657 Fix IfStatementAssignment violation message
    • #667: Be sure the phar file use the latest possible versions of dependencies (like pdepend)
    • #661: Fix IfStatementAssignment thrown incorrectly
    • #676: Handle @SuppressWarnings on each method for CountInLoop
    • ⚡️ #659: Update RuleSetFactory to be PHP 7.4 compatible
    • 📚 Update different parts of the documentation. #595 #645 #646 #648 #652 #665 #679 #691

    🚀 Consult the changelog for the full history of noteworthy changes or browse through the list of commits since the last release.

    🚀 Contributors to this release

    🚀 We would like to thank all the contributors that helped make this release possible:

    Also, we are very grateful to contributors that opened issues, created pull requests or participated as our community.

  • v2.7.0 Changes

    July 30, 2019

    🚀 This is the first minor release of the new PHPMD maintainer team. It 🛠 contains all the new features, improvements and fixes from two and a half years since 2.6.0. Please take note of a backwards incompatible property renaming in the CouplingBetweenObjects rule.

    • 🛠 Fixed #482: Renamed minimum property to maximum in CouplingBetweenObjects rule (backwards incompatible) Fixed in commit #9210116.
    • 🛠 Fixed #626: Fixed special characters escaping in violation description for XML output Fixed in commit #5305f5b.
    • 🛠 Fixed #378: Fixed warning/error when trying to export to a non-existing path Fixed in commit #67bd7c6.
    • 🛠 Fixed #575: Fixed UnusedFormalParameter false positive in string compound variable Fixed in commit #8790cbb.
    • 🛠 Fixed #480: Fixed "Start tag expected, '<' not found" error Fixed in commit #3e2e058.
    • 🛠 Fixed #494: Fixed UnusedPrivateField false positive Fixed in commit #99f3ba9.
    • 🛠 Fixed #583: Changed LongNaming rule to apply on private fields too Fixed in commit #42bf8ad.
    • 🛠 Fixed #598: Fixed a bug in the renderer auto-discovery Fixed in commit #cc06bfd.
    • 🛠 Fixed #572: Added support for both @SuppressWarnings and @suppressWarnings annotation cases Fixed in commit #bb2cfe9.
    • 🛠 Fixed invalid "array of strings" type hints Fixed in commit #16e4eda.
    • 🛠 Fixed #599: Fixed Composer package type Fixed in commit #0ca4eff.
    • 🛠 Fixed #604: Renamed mikey179/vfsStream to mikey179/vfsstream to prevent Composer error Fixed in commit #f66247f.
    • 🛠 Fixed #632: Changed Scrutinizer CI settings to use local PHPUnit Fixed in commit #dfaa509.
    • 🛠 Fixed #633: Fixed AppVeyor CI build Fixed in commit #40189f3.
    • 🛠 Fixed #609: Fixed main logo link in website build script Fixed in commit #f3b68be.
    • 🛠 Fixed #631: Fixed URL to "How to create a custom rule set" documentation page on website Fixed in commit #3c5b534.
    • 🛠 Fixed #449: Improved code style Fixed in commit #67cdab2.
    • 🛠 Fixed #447: Improved code style Fixed in commit #3ef4ba8.
    • 🛠 Fixed #450: Improved code style Fixed in commit #9525da7.
    • 🛠 Fixed #582: Fixed a typo in Clean Code Rules documentation Fixed in commit #85e48ad.
    • 🛠 Fixed #567: Fixed a typo in Clean Code Rules documentation Fixed in commit #175b08f.
    • Implemented #472: Added rule for assignment within conditional (IfStatementAssignment) Implemented in commit #716ecf5.
    • Implemented #490: Added rule for count in loop (CountInLoop) Implemented in commit #0e30d82.
    • Implemented #484: Added rule for duplicated array key (DuplicatedArrayKey) Implemented in commit #a295850.
    • Implemented #476: Added rule for empty catch block (EmptyCatchBlock) Implemented in commit #4bc19bd.
    • Implemented #636: Added rule for missing import (MissingImport) Implemented in commit #3a82eab.
    • 👍 Implemented #443: Added support for compound variables in UnusedLocalVariable rule Implemented in commit #c7009d5.
    • 👍 Implemented #329: Added support to whitelist variables in the UnusedLocalVariable rule Implemented in commit #55ca654.
    • Implemented #478: Implemented renderer auto-discovery Implemented in commit #91c4ca8.
    • Implemented #405: Added JSON output format Implemented in commit #7552089.
    • Implemented #525: Added new options to CLI (min-priority, minimum-priority, report-file, input-file, not-strict) Implemented in commit #71b52be.
    • 👍 Implemented #579: Added support for setting the maximum execution priority through CLI (max-priority, maximum-priority, maximumpriority) Implemented in commit #45de3be.
    • Implemented #489: Added new predefined variables to AbstractLocalVariable rule Implemented in commit #63047d9.
    • Implemented #382: Changed TooManyMethods rule to ignore isser-, hasser-, wither-methods Implemented in commit #609c6bb.
    • 🛠 Implemented #625: Fixed DuplicatedArrayKey rule to check only arrays with keys Implemented in commit #43d4ed0.
    • 🏗 Implemented #528: Fixed Travis-CI build by temporarily removing PHP 5.3 Implemented in commit #0a69edf.
    • 🏗 Implemented #643: Fixed Travis-CI build to run PHP 5.3 and fixed 5.3 compatibility Implemented in commit #4a8a567.
    • ✅ Implemented #475: Added tests that show support for chained methods (fluent interfaces) for UnusedPrivateMethod rule Implemented in commit #d5c1372.
    • ✅ Implemented #495: Added test for SuppressWarnings for ExcessivePublicCount Implemented in commit #b1c15f8.
    • Implemented #381: Added annotations to allow IDEs to reference correct classes Implemented in commit #2dbae11.
    • 🛠 Implemented #639: Fixed arrays types to use standard type syntax Implemented in commit #858c9fd.
    • Implemented #640: Added type hint annotations Implemented in commit #d68e511.
    • Implemented #481: Cleaned boc block comments Implemented in commit #08a38d4.
    • Implemented #491: Cleaned whitespaces Implemented in commit #dcdd61a.
    • 🛠 Implemented #477: Fixed code formatting Implemented in commit #3c6b69b.
    • ⚡️ Implemented #548: Updated PDepend to 2.5.2 Implemented in commit #f1c145e.
    • 👍 Implemented #474: Dropped HHVM support Implemented in commit #9f7b4d2.
    • ⚡️ Implemented #458: Updated PHPCS dev dependency from 2.3.4 to 2.8.1 Implemented in commit #f2ae09f.
    • ⚡️ Implemented #458: Updated PHPCS & added Composer scripts Implemented in commit #24ff5a9.
    • ⚡️ Implemented #469: Updated Coding Standard command Implemented in commit #9962dae.
    • 🔒 Implemented #627: Removed composer.lock Implemented in commit #981c78f.
    • 🏗 Implemented #623: Extended test matrix & do only one job per build on Travis-CI Implemented in commit #a2c64bf.
    • 🏗 Implemented #617: Replaced Travis-CI build notification from IRC to the new Gitter core channel Implemented in commit #e1a4cd7.
    • Implemented #620: Added PHPMD Gitter Community Channel notifications for Travis-CI Implemented in commit #f1c05bf.
    • 👷 Implemented #459: Integrated Stickler CI Implemented in commit #d106330.
    • ✅ Implemented #492: Adjusted Stickler-CI config for ignoring test resource files Implemented in commit #9b18153.
    • Implemented #460: Added ApiGen config file Implemented in commit #4514235.
    • 0️⃣ Implemented #471: Modified default PHP installation directory to match Chocolatey package in AppVeyor CI config Implemented in commit #2b55442.
    • ⚡️ Implemented #552: Updated PHP in AppVeyor CI builds to 7.1 Implemented in commit #252b178.
    • 🏗 Implemented #605: Added a pure PHP build script to generate the website as static files Implemented in commit #6f56a8f.
    • ⚡️ Implemented #608: Updated the website build script to handle anchor links and to use direct links whenever possible Implemented in commit #6cf7a2d.
    • 🚚 Implemented #483: Removed broken link to Web Content Viewer from website Implemented in commit #eeea9ee.
    • 🚚 Implemented #611: Removed section about commercial support from website Implemented in commit #671760a.
    • 🚚 Implemented #612: Removed IRC, add Gitter & reword Support & Contact section from/on website Implemented in commit #3e94d6b.
    • Implemented #479: Replaced all file header doc blocks with uniform one Implemented in commit #fff046c.
    • Implemented #470: Changed HTTP to HTTPS in some files Implemented in commit #1ca30d0.
    • Implemented #448: Switched from HTTP to HTTPS in some files Implemented in commit #51eb887.
    • Implemented #524: Switched from HTTP to HTTPS in resource file Implemented in commit #409b276.
    • ✅ Implemented #454: Switched from HTTP to HTTPS for test files Implemented in commit #f1c1426.
    • Implemented #451: Switched from HTTP to HTTPS for main files Implemented in commit #9a77c48.
    • Implemented #455: Switched from HTTP to HTTPS for resource files Implemented in commit #b073ad2.
    • Implemented #566: Added CLI usage example Implemented in commit #e12e59c.
    • ⚡️ Implemented #621: Updated wording about PHPMD Implemented in commit #c116054.
    • ⚡️ Implemented #606: Updated license according to BSD 3-clause template Implemented in commit #e850660.
    • 🐧 Implemented #469: Improved contributing guide for Linux / OS X users Implemented in commit #63ff5bf.
    • 👀 Implemented #383: Improved the ElseExpression description Implemented in commit #6f02406.
    • Implemented #565: Added example for modifying properties in a rule set Implemented in commit #59551fc.
    • 🚚 Implemented #614: Removed API docs that do not exist anymore Implemented in commit #7c8d9bc.
    • Implemented #615: Added Gitter badge Implemented in commit #8e1e9e8.
    • Implemented #618: Added badges for the monthly and total downloads Implemented in commit #1e86639.