All notable changes in PHPCPD are documented in this file using the Keep a CHANGELOG principles.
- Updated the minimum PHP requirement to version 8.4, meaning this tool is no longer supported on PHP 8.3.
- Updated the Suffix Tree engine to use PHP native arrays, completely eliminating hash collisions, achieving zero memory bloat, and boosting performance by up to 17%.
- Updated the PMD-CPD XML report generator to use the modern Dom\XMLDocument extension.
- Updated Composer dependencies and improved the development environment for the support team.
- Added
--ignore-no-files optionto return a success exit code if no files were found. - Added
#[SuppressCpd]to ignore code clones inside a class or method (use Systemsdk\PhpCPD\Attributes\SuppressCpd;).
- Improved Suffix Tree-based algorithm for code clone detection.
- Updated Dev environment: Updated XDebug, Phing, dev composer dependencies.
- Updated sebastian/cli-parser. Dev environment: Updated XDebug, Phive, Phing, dev composer dependencies.
- Improved html report and DataTables buttons, updated bootstrap and DataTables to the latest version.
- Improved progress bar.
- Fixed codefragment value for xml report.
- Added possibility to use xalan cli tool for generating html report with datatable and possibility to export into csv, excel, pdf formats or print it.
- Changed and extended xml report format.
- Tool can be installed using composer, updated composer dependencies.
- Added Suffix Tree-based algorithm for code clone detection (experimental), added progress bar.
- Made codebase refactoring. Updated packages: sebastian/cli-parser, sebastian/version, phpunit/php-file-iterator, phpunit/php-timer. Updated tests to the PHPUnit 12.
- Made codebase refactoring. Updated requirements php 8.3, updated composer dependencies, updated tests to the PHPUnit 11. Updated dev environment to the php 8.4, Phing 3.0, added code quality tools: ecs, phpstan.
7.0.1 - 2024-01-12
- Skip php attributes from analysis (including multilines attributes, see example inside tests/fixture/Math.php)
7.0.0 - 2022-MM-DD
- #199: Suffix Tree-based algorithm for code clone detection
- Removed support for PHP versions older than PHP 8.1
6.0.3 - 2020-12-07
- Changed PHP version constraint in
composer.jsonfrom^7.3to>=7.3
6.0.2 - 2020-08-18
- #187: Exclude arguments are being handled as prefixes
6.0.1 - 2020-08-13
- The
--verboseCLI option had no effect
6.0.0 - 2020-08-13
- The
--namesCLI option has been removed; use the--suffixCLI option instead - The
--names-excludeCLI option has been removed; use the--excludeCLI option instead - The
--regexps-excludeCLI option has been removed - The
--progressCLI option has been removed
5.0.2 - 2020-02-22
- Require
sebastian/versionversion 3 andphpunit/php-timerversion 3 to allow Composer-based installation alongsidephploc/phplocversion 6 andphpunit/phpunitversion 9
5.0.1 - 2020-02-20
- #181:
--min-lines,--min-tokens, and--fuzzycommandline options do not work
5.0.0 - 2020-02-20
- Removed support for PHP versions older than PHP 7.3
4.1.0 - 2018-09-17
- Implemented #117: Report average and maximum length of code clone
- The text logger now prints code clones sorted by size (in descending order)
4.0.0 - 2018-01-02
- Removed support for PHP versions older than PHP 7.1
3.0.1 - 2017-11-16
- #147: Wrong exit code when no files were found to be scanned
- #152: Version requirement for
sebastian/versionis too strict
3.0.0 - 2017-02-05
- #90: The PMD logger now replaces all characters that are invalid XML with
U+FFFD - #100: Added the
--regexps-excludeoption
- When the Xdebug extension is loaded, PHPCPD disables as much of Xdebug's functionality as possible to minimize the performance impact
- Removed support for PHP versions older than PHP 5.6