【问题标题】:PHP Copy-Paste DetectorPHP 复制粘贴检测器
【发布时间】:2012-09-01 18:20:21
【问题描述】:

我的问题是,当我运行phpcpd 命令时,无论是我的项目,是否是任何 php 模块的文件,还是我创建的用于检查 phpcpd 是否有效的文件,我总是得到 0% 的代码结果。 ..例如,当我检查下面的文件时,它也显示 0%:

phpcpd 文件夹/file.php:

<?php

class Class_Two {

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }   

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }
    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }
    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }
    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }
    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }
    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
            echo 'ok';
        }
    }

}

class Class_Two {

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

    public function aaa()
    {
        if(2 == 2)
        {
            echo 'ok';
        }
    }

}

关于为什么它不能正常工作的任何建议?或者它应该做一些其他的任务?

【问题讨论】:

    标签: php pear


    【解决方案1】:

    来自http://www.codediesel.com/tools/detecting-duplicate-code-in-php-files/

    默认情况下 phpcpd 将搜索至少 5 行相同的行 70 个相同的令牌。因此,如果重复行少于 5 代码或少于 70 个相同的标记,它们将被忽略。至 覆盖它,您可以使用 –min-lines 和 –min-tokens 开关。

    【讨论】:

      【解决方案2】:

      尝试在文件夹而不是文件上运行它:

      phpcpd /folder/
      

      【讨论】:

        【解决方案3】:

        哦,我都试过了,但都没有用……我的意思是,即使我在一个文件中创建了很多相同的行,我总是得到 0 个双行。

        当我键入 --min-lines 1 --min-tokens 1 但是我收到两个通知: C:/php/pear/PHPCPD/Detector/Strategy/Default.php 中的未定义偏移量在第 106 行...

        【讨论】:

          猜你喜欢
          • 2015-11-05
          • 1970-01-01
          • 2020-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多