classes/phing/tasks/ext/phpcpd/PHPCPDTask.php
public function main()
    {
        $this->loadDependencies();

        if (!isset($this->file) && count($this->filesets) == 0) {
            throw new BuildException('Missing either a nested fileset or attribute "file" set');
        }

        if (count($this->formatters) == 0) {
            // turn legacy format attribute into formatter
            $fmt = new PHPCPDFormatterElement($this);
            $fmt->setType($this->format);
            $fmt->setUseFile(false);

            $this->formatters[] = $fmt;
        }

        $this->validateFormatters();

        $filesToParse = [];

        if ($this->file instanceof PhingFile) {
            $filesToParse[] = $this->file->getPath();
        } else {
            // append any files in filesets
            foreach ($this->filesets as $fs) {
                $files = $fs->getDirectoryScanner($this->project)->getIncludedFiles();

                foreach ($files as $filename) {
                    $f = new PhingFile($fs->getDir($this->project), $filename);
                    $filesToParse[] = $f->getAbsolutePath();
                }
            }
        }

        $this->log('Processing files...');

        if ($this->oldVersion) {
            $detectorClass = 'PHPCPD_Detector';
            $strategyClass = 'PHPCPD_Detector_Strategy_Default';
        } else {
            $detectorClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Detector';
            $strategyClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Strategy\\DefaultStrategy';
        }

        $detector = new $detectorClass(new $strategyClass());
        $clones = $detector->copyPasteDetection(
            $filesToParse,
            $this->minLines,
            $this->minTokens,
            $this->fuzzy
        );

        $this->log('Finished copy/paste detection');

        foreach ($this->formatters as $fe) {
            $formatter = $fe->getFormatter();
            $formatter->processClones(
                $clones,
                $this->project,
                $fe->getUseFile(),
                $fe->getOutfile()
            );
        }
    }
public function main()
    {
        $this->loadDependencies();

        if (!isset($this->file) && count($this->filesets) == 0) {
            throw new BuildException('Missing either a nested fileset or attribute "file" set');
        }

        if (count($this->formatters) == 0) {
            // turn legacy format attribute into formatter
            $fmt = new PHPCPDFormatterElement($this);
            $fmt->setType($this->format);
            $fmt->setUseFile(false);

            $this->formatters[] = $fmt;
        }

        $this->validateFormatters();

        $filesToParse = [];

        if ($this->file instanceof PhingFile) {
            $filesToParse[] = $this->file->getPath();
        } else {
            // append any files in filesets
            foreach ($this->filesets as $fs) {
                $files = $fs->getDirectoryScanner($this->project)->getIncludedFiles();

                foreach ($files as $filename) {
                    $f = new PhingFile($fs->getDir($this->project), $filename);
                    $filesToParse[] = $f->getAbsolutePath();
                }
            }
        }

        $this->log('Processing files...');

        if ($this->oldVersion) {
            $detectorClass = 'PHPCPD_Detector';
            $strategyClass = 'PHPCPD_Detector_Strategy_Default';
        } else {
            $detectorClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Detector';
            $strategyClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Strategy\\DefaultStrategy';
        }

        $detector = new $detectorClass(new $strategyClass());
        $clones = $detector->copyPasteDetection(
            $filesToParse,
            $this->minLines,
            $this->minTokens,
            $this->fuzzy
        );

        $this->log('Finished copy/paste detection');

        foreach ($this->formatters as $fe) {
            $formatter = $fe->getFormatter();
            $formatter->processClones(
                $clones,
                $this->project,
                $fe->getUseFile(),
                $fe->getOutfile()
            );
        }
    }
public function main ( ) { $ this -> loadDependencies ( ) ; if ( ! isset ( $ this -> file ) && count ( $ this -> filesets ) == 0 ) { throw new BuildException ( 'Missing either a nested fileset or attribute "file" set' ) ; } if ( count ( $ this -> formatters ) == 0 ) { // turn legacy format attribute into formatter $ fmt = new PHPCPDFormatterElement ( $ this ) ; $ fmt -> setType ( $ this -> format ) ; $ fmt -> setUseFile ( false ) ; $ this -> formatters [ ] = $ fmt ; } $ this -> validateFormatters ( ) ; $ filesToParse = [ ] ; if ( $ this -> file instanceof PhingFile ) { $ filesToParse [ ] = $ this -> file -> getPath ( ) ; } else { // append any files in filesets foreach ( $ this -> filesets as $ fs ) { $ files = $ fs -> getDirectoryScanner ( $ this -> project ) -> getIncludedFiles ( ) ; foreach ( $ files as $ filename ) { $ f = new PhingFile ( $ fs -> getDir ( $ this -> project ) , $ filename ) ; $ filesToParse [ ] = $ f -> getAbsolutePath ( ) ; } } } $ this -> log ( 'Processing files...' ) ; if ( $ this -> oldVersion ) { $ detectorClass = 'PHPCPD_Detector' ; $ strategyClass = 'PHPCPD_Detector_Strategy_Default' ; } else { $ detectorClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Detector' ; $ strategyClass = '\\SebastianBergmann\\PHPCPD\\Detector\\Strategy\\DefaultStrategy' ; } $ detector = new $ detectorClass ( new $ strategyClass ( ) ) ; $ clones = $ detector -> copyPasteDetection ( $ filesToParse , $ this -> minLines , $ this -> minTokens , $ this -> fuzzy ) ; $ this -> log ( 'Finished copy/paste detection' ) ; foreach ( $ this -> formatters as $ fe ) { $ formatter = $ fe -> getFormatter ( ) ; $ formatter -> processClones ( $ clones , $ this -> project , $ fe -> getUseFile ( ) , $ fe -> getOutfile ( ) ) ; } }
Executes PHPCPD against PhingFile or a FileSet

@throws BuildException
Executes PHPCPD against PhingFile or a FileSet