php-dry – Clone Detection for PHP

Overview

php-dry – Clone Detection for PHP

php-dry detects duplicated behaviour in your application, even if the duplicated passages are implemented completely different to each other. Likely you should read a bit about the theoretical background for a better understanding.

Run via Docker (recommended)

docker run -v {path_to_project}:/project leovie/php-dry -h

Run via binary

Install via composer

composer require --dev leovie/php-dry

After installation, you can run php-dry via

vendor/bin/php-dry {path_to_project} -h

Documentation

see here

Thanks

Special thank you belongs to queo GmbH for sponsoring the development and maintenance of php-dry.

Comments
Releases(v1.7.7)
  • v1.7.7(Jun 29, 2022)

    What's Changed

    • Rollback to version v1.7.6 by @LeoVie in https://github.com/LeoVie/php-dry/pull/144

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.6...v1.7.7

    Source code(tar.gz)
    Source code(zip)
  • v1.7.6(Jun 17, 2022)

    What's Changed

    • Don't analyze methods, that are only inheriting parent methods by @LeoVie in https://github.com/LeoVie/php-dry/pull/124

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.5...v1.7.6

    Source code(tar.gz)
    Source code(zip)
  • v1.7.5(Jun 17, 2022)

    What's Changed

    • Remove own buggy cache; can be replaced with symfony cache later by @LeoVie in https://github.com/LeoVie/php-dry/pull/122
    • #67 More performance boosts by @LeoVie in https://github.com/LeoVie/php-dry/pull/123

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.4...v1.7.5

    Source code(tar.gz)
    Source code(zip)
  • v1.7.4(Jun 17, 2022)

    What's Changed

    • Bump infection/infection from 0.26.10 to 0.26.11 by @dependabot in https://github.com/LeoVie/php-dry/pull/116
    • Bump symfony/flex from 2.2.1 to 2.2.2 by @dependabot in https://github.com/LeoVie/php-dry/pull/118
    • Bump psalm/plugin-symfony from 3.1.6 to 3.1.7 by @dependabot in https://github.com/LeoVie/php-dry/pull/117
    • 67 profile application by @LeoVie in https://github.com/LeoVie/php-dry/pull/119
    • 67 performance improvements by @LeoVie in https://github.com/LeoVie/php-dry/pull/120

    This improves performance by ~75%. 🔥

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.3...v1.7.4

    Source code(tar.gz)
    Source code(zip)
  • v1.7.3(Jun 11, 2022)

    What's Changed

    • #114 Use absolute paths in reports by @LeoVie in https://github.com/LeoVie/php-dry/pull/115

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.2...v1.7.3

    Source code(tar.gz)
    Source code(zip)
  • v1.7.2(Jun 11, 2022)

    What's Changed

    • 103 allow multiple directories to be analyzed at once by @LeoVie in https://github.com/LeoVie/php-dry/pull/113

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.1...v1.7.2

    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Jun 11, 2022)

    What's Changed

    • 103 allow multiple directories to be analyzed at once by @LeoVie in https://github.com/LeoVie/php-dry/pull/112

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.7.0...v1.7.1

    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Jun 11, 2022)

    What's Changed

    • Bump nikic/php-parser from 4.13.2 to 4.14.0 by @dependabot in https://github.com/LeoVie/php-dry/pull/105
    • Bump ergebnis/composer-normalize from 2.27.0 to 2.28.0 by @dependabot in https://github.com/LeoVie/php-dry/pull/106
    • Bump symfony/flex from 2.1.8 to 2.2.0 by @dependabot in https://github.com/LeoVie/php-dry/pull/107
    • Bump symfony/flex from 2.2.0 to 2.2.1 by @dependabot in https://github.com/LeoVie/php-dry/pull/109
    • Bump psalm/plugin-symfony from 3.1.5 to 3.1.6 by @dependabot in https://github.com/LeoVie/php-dry/pull/108
    • Bump thecodingmachine/safe from 2.2.0 to 2.2.1 by @dependabot in https://github.com/LeoVie/php-dry/pull/110
    • #103 allow multiple directories to be analyzed at once by @LeoVie in https://github.com/LeoVie/php-dry/pull/111

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.6.1...v1.7.0

    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Jun 1, 2022)

    What's Changed

    • Bump symfony/console from 6.0.8 to 6.0.9 by @dependabot in https://github.com/LeoVie/php-dry/pull/96
    • Bump symfony/framework-bundle from 6.0.8 to 6.0.9 by @dependabot in https://github.com/LeoVie/php-dry/pull/95
    • Bump symfony/dom-crawler from 6.0.6 to 6.0.9 by @dependabot in https://github.com/LeoVie/php-dry/pull/94
    • Bump ergebnis/composer-normalize from 2.26.0 to 2.27.0 by @dependabot in https://github.com/LeoVie/php-dry/pull/93
    • Update leovie/php-token-normalize by @LeoVie in https://github.com/LeoVie/php-dry/pull/102
    • 100 Remove documentation, as it moved to php-dry.org by @LeoVie in https://github.com/LeoVie/php-dry/pull/104

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.6.0...v1.6.1

    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(May 25, 2022)

    What's Changed

    • #89 Upgrade to Symfony 6 by @LeoVie in https://github.com/LeoVie/php-dry/pull/92

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.5.2...v1.6.0

    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(May 25, 2022)

    What's Changed

    • Trigger website deploy after release by @LeoVie in https://github.com/LeoVie/php-dry/pull/91

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.5.1...v1.5.2

    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(May 18, 2022)

    What's Changed

    • Refactoring by @LeoVie in https://github.com/LeoVie/php-dry/pull/87
    • #82 Order method parameters by alphabet to find more clones by @LeoVie in https://github.com/LeoVie/php-dry/pull/88

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.5.0...v1.5.1

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(May 18, 2022)

    What's Changed

    • #85 Remove clean code scoring functionality, should be done via postp… by @LeoVie in https://github.com/LeoVie/php-dry/pull/86

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.4.2...v1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.4.2(May 18, 2022)

    What's Changed

    • 83 Make clean code scoring optional by @LeoVie in https://github.com/LeoVie/php-dry/pull/84

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.4.1...v1.4.2

    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(May 18, 2022)

    What's Changed

    • Bump symfony/finder from 6.0.3 to 6.0.8 by @dependabot in https://github.com/LeoVie/php-dry/pull/75
    • Bump symfony/runtime from 6.0.7 to 6.0.8 by @dependabot in https://github.com/LeoVie/php-dry/pull/74
    • Bump symfony/framework-bundle from 6.0.7 to 6.0.8 by @dependabot in https://github.com/LeoVie/php-dry/pull/73
    • Bump symfony/console from 6.0.7 to 6.0.8 by @dependabot in https://github.com/LeoVie/php-dry/pull/72
    • Really use different php versions in CI by passing php versions into … by @LeoVie in https://github.com/LeoVie/php-dry/pull/81
    • Bump twig/twig from 3.3.10 to 3.4.1 by @dependabot in https://github.com/LeoVie/php-dry/pull/80
    • Bump psalm/plugin-symfony from 3.1.4 to 3.1.5 by @dependabot in https://github.com/LeoVie/php-dry/pull/79
    • Bump symfony/flex from 2.1.7 to 2.1.8 by @dependabot in https://github.com/LeoVie/php-dry/pull/76

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.4.0...v1.4.1

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Apr 20, 2022)

    What's Changed

    • Bump symfony/flex from 2.1.6 to 2.1.7 by @dependabot in https://github.com/LeoVie/php-dry/pull/64
    • #66 caching concept by @LeoVie in https://github.com/LeoVie/php-dry/pull/68
    • #70 Update leovie/php-param-generator by @LeoVie in https://github.com/LeoVie/php-dry/pull/71

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.3.4...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.4(Apr 13, 2022)

    What's Changed

    • Add resources dir to docker images by @LeoVie in https://github.com/LeoVie/php-dry/pull/63

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.3.3...v1.3.4

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Apr 13, 2022)

    What's Changed

    • Add templates dir to docker images by @LeoVie in https://github.com/LeoVie/php-dry/pull/62

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.3.2...v1.3.3

    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Apr 13, 2022)

    What's Changed

    • Improve docker entrypoint to be more flexible by @LeoVie in https://github.com/LeoVie/php-dry/pull/61

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.3.1...v1.3.2

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Apr 13, 2022)

    What's Changed

    • #53 Support type bool by @LeoVie in https://github.com/LeoVie/php-dry/pull/58
    • Enhancement/#53 support more native types add null by @LeoVie in https://github.com/LeoVie/php-dry/pull/59

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.3.0...v1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Apr 13, 2022)

    What's Changed

    • Enhancement/#24 report building is not consequent by @LeoVie in https://github.com/LeoVie/php-dry/pull/56

    Breaking Changes

    • Format of json report changed

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.2.2...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Apr 13, 2022)

    What's Changed

    • Enhancement/#23 replace html builder with templating engine by @LeoVie in https://github.com/LeoVie/php-dry/pull/55

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.2.1...v1.2.2

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Apr 13, 2022)

    What's Changed

    • Fix paths, fix docker build by @LeoVie in https://github.com/LeoVie/php-dry/pull/54

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.2.0...v1.2.1

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Apr 13, 2022)

    What's Changed

    • Bump psalm/plugin-symfony from 3.1.3 to 3.1.4 by @dependabot in https://github.com/LeoVie/php-dry/pull/52
    • Enhancement/#17 use phpdocumentor for preprocessing files by @LeoVie in https://github.com/LeoVie/php-dry/pull/21

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.5...v1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.5(Apr 6, 2022)

    What's Changed

    • #43 Set version to console application by @LeoVie in https://github.com/LeoVie/php-dry/pull/51

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.4...v1.1.5

    Source code(tar.gz)
    Source code(zip)
  • v1.1.4(Apr 6, 2022)

    What's Changed

    • Bugfix/43 version output by @LeoVie in https://github.com/LeoVie/php-dry/pull/50

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.3...v1.1.4

    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Apr 6, 2022)

    What's Changed

    • Bugfix/43 version output by @LeoVie in https://github.com/LeoVie/php-dry/pull/49

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.2...v1.1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Apr 6, 2022)

    What's Changed

    • Bump phpunit/phpunit from 9.5.19 to 9.5.20 by @dependabot in https://github.com/LeoVie/php-dry/pull/44
    • Bump symfony/console from 6.0.5 to 6.0.7 by @dependabot in https://github.com/LeoVie/php-dry/pull/47
    • Bump symfony/framework-bundle from 6.0.6 to 6.0.7 by @dependabot in https://github.com/LeoVie/php-dry/pull/46
    • Bump symfony/runtime from 6.0.5 to 6.0.7 by @dependabot in https://github.com/LeoVie/php-dry/pull/45
    • #43 Create version file when building new release by @LeoVie in https://github.com/LeoVie/php-dry/pull/48

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.1...v1.1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Mar 31, 2022)

    What's Changed

    • Bump symfony/dom-crawler from 5.3.14 to 6.0.6 by @dependabot in https://github.com/LeoVie/php-dry/pull/38
    • Bump symfony/framework-bundle from 5.4.6 to 6.0.6 by @dependabot in https://github.com/LeoVie/php-dry/pull/39
    • Bump symfony/stopwatch from 5.4.5 to 6.0.5 by @dependabot in https://github.com/LeoVie/php-dry/pull/37
    • Bump symfony/css-selector from 5.3.14 to 6.0.3 by @dependabot in https://github.com/LeoVie/php-dry/pull/40
    • Bump symfony/runtime from 5.4.5 to 6.0.5 by @dependabot in https://github.com/LeoVie/php-dry/pull/41
    • Bump symfony/console from 5.4.5 to 6.0.5 by @dependabot in https://github.com/LeoVie/php-dry/pull/36
    • Bump symfony/finder from 5.4.3 to 6.0.3 by @dependabot in https://github.com/LeoVie/php-dry/pull/35
    • Bump symfony/dotenv from 5.4.5 to 6.0.5 by @dependabot in https://github.com/LeoVie/php-dry/pull/34

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.1.0...v1.1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Mar 30, 2022)

    What's Changed

    • 18 improve documentation by @LeoVie in https://github.com/LeoVie/php-dry/pull/25
    • 26 make all ci commands runnable via docker by @LeoVie in https://github.com/LeoVie/php-dry/pull/27
    • 20 Add contribution guide by @LeoVie in https://github.com/LeoVie/php-dry/pull/29
    • 28 Add csfixer by @LeoVie in https://github.com/LeoVie/php-dry/pull/30
    • 31 Run csfixer initially by @LeoVie in https://github.com/LeoVie/php-dry/pull/32
    • 22 Replace command line arguments with xml configuration by @LeoVie in https://github.com/LeoVie/php-dry/pull/33

    Full Changelog: https://github.com/LeoVie/php-dry/compare/v1.0.7...v1.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Leo Viezens
Leo Viezens
Detection of execution by command (Terminal) or web environment.

WEB-CLI-Detector Detection of execution by command (Terminal) or web environment. Acronym: [WEB-CLI-Detector]. Name: WEB-CLI-Detector. Dependencies: S

Walter Nuñez 4 Jul 13, 2022
This is a Native PHP MVC. If you will build your own PHP project in MVC with router, you can clone this ready to use MVC pattern repo.

Welcome to PHP-Native-MVC-Pattern ?? If you will build your own PHP project in MVC with router, you can clone this ready to use MVC pattern repo. Work

null 2 Jun 6, 2022
Inquirer.js clone but for PHP.

inquirer-php (immature) This aims to be something equivalent-ish to Inquirer.js or python-inquirer. Status This is in a very immature status — please

Aarón Fas 3 Apr 28, 2022
This is a clone of Discord's homepage built using Wordpress.

Discord-UI-Clone Description This is a clone of Discord's homepage built using Wordpress, it is configured to run on the Pantheon platform. Live Demo

Abir Bouhriz Daidj 8 Aug 21, 2022
Clone do site ingresso.com

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Guilherme Caraciolo 2 Dec 28, 2021
Twitter Clone API Rest with Laravel 9

TW Main API (Twitter Clone) Setup Installation Before docker-compose up Get copy the .env.example to .env Set Mail variables Set Pusher Variables with

Jesus Eduardo 0 Jul 31, 2022
The Current US Version of PHP-Nuke Evolution Xtreme v3.0.1b-beta often known as Nuke-Evolution Xtreme. This is a hardened version of PHP-Nuke and is secure and safe. We are currently porting Xtreme over to PHP 8.0.3

2021 Nightly Builds Repository PHP-Nuke Evolution Xtreme Developers TheGhost - Ernest Allen Buffington (Lead Developer) SeaBeast08 - Sebastian Scott B

Ernest Buffington 7 Aug 28, 2022
A sampling profiler for PHP written in PHP, which reads information about running PHP VM from outside of the process.

Reli Reli is a sampling profiler (or a VM state inspector) written in PHP. It can read information about running PHP script from outside of the proces

null 272 Dec 22, 2022
PHP Meminfo is a PHP extension that gives you insights on the PHP memory content

MEMINFO PHP Meminfo is a PHP extension that gives you insights on the PHP memory content. Its main goal is to help you understand memory leaks: by loo

Benoit Jacquemont 994 Dec 29, 2022
A sampling profiler for PHP written in PHP, which reads information about running PHP VM from outside of the process.

Reli Reli is a sampling profiler (or a VM state inspector) written in PHP. It can read information about running PHP script from outside of the proces

null 258 Sep 15, 2022
A multithreaded application server for PHP, written in PHP.

appserver.io, a PHP application server This is the main repository for the appserver.io project. What is appserver.io appserver.io is a multithreaded

appserver.io 951 Dec 25, 2022
Easy to use utility functions for everyday PHP projects. This is a port of the Lodash JS library to PHP

Lodash-PHP Lodash-PHP is a port of the Lodash JS library to PHP. It is a set of easy to use utility functions for everyday PHP projects. Lodash-PHP tr

Lodash PHP 474 Dec 31, 2022
A PHP 5.3+ and PHP 7.3 framework for OpenGraph Protocol

Opengraph Test with Atoum cd Opengraph/ curl -s https://getcomposer.org/installer | php php composer.phar install --dev ./vendor/atoum/atoum/bin/atoum

Axel Etcheverry 89 Dec 27, 2022
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
🐘 A probe program for PHP environment (一款精美的 PHP 探針, 又名X探針、劉海探針)

Simplified Chinese | 简体中文 Traditional Chinese(Taiwan) | 正體中文(臺灣) Traditional Chinese(Hong Kong) | 正體中文(香港) Japanese | 日本語 ?? X Prober This is a probe

Km.Van 1.2k Dec 28, 2022
PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP language

php-text-analysis PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP l

null 464 Dec 28, 2022
PHP generics written in PHP

PHP generics written in PHP Require PHP >= 7.4 Composer (PSR-4 Autoload) Table of contents How it works Quick start Example Features Tests How it work

Anton Sukhachev 173 Dec 30, 2022
PHP exercises from my course at ETEC and some of my own play-around with PHP

etec-php-exercises PHP exercises from my course at ETEC and some of my own play-around with PHP Translations: Português (BR) Projects Project Descript

Luis Felipe Santos do Nascimento 6 May 3, 2022
GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

Shivam Mathur 2.4k Jan 6, 2023