open-orchestra/open-orchestra-cms-bundle

View on GitHub
BackofficeBundle/Command/OrchestraDeleteAliasCommand.php

Summary

Maintainability
B
5 hrs
Test Coverage

Function execute has a Cognitive Complexity of 23 (exceeds 5 allowed). Consider refactoring.
Open

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $aliasId = $input->getArgument('aliasId');
        $limit = 20;
Severity: Minor
Found in BackofficeBundle/Command/OrchestraDeleteAliasCommand.php - About 3 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Method execute has 60 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $aliasId = $input->getArgument('aliasId');
        $limit = 20;
Severity: Major
Found in BackofficeBundle/Command/OrchestraDeleteAliasCommand.php - About 2 hrs to fix

The method execute() has a Cyclomatic Complexity of 10. The configured cyclomatic complexity threshold is 10.
Open

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $aliasId = $input->getArgument('aliasId');
        $limit = 20;

CyclomaticComplexity

Since: 0.1

Complexity is determined by the number of decision points in a method plus one for the method entry. The decision points are 'if', 'while', 'for', and 'case labels'. Generally, 1-4 is low complexity, 5-7 indicates moderate complexity, 8-10 is high complexity, and 11+ is very high complexity.

Example

// Cyclomatic Complexity = 11
class Foo {
1   public function example() {
2       if ($a == $b) {
3           if ($a1 == $b1) {
                fiddle();
4           } elseif ($a2 == $b2) {
                fiddle();
            } else {
                fiddle();
            }
5       } elseif ($c == $d) {
6           while ($c == $d) {
                fiddle();
            }
7        } elseif ($e == $f) {
8           for ($n = 0; $n < $h; $n++) {
                fiddle();
            }
        } else {
            switch ($z) {
9               case 1:
                    fiddle();
                    break;
10              case 2:
                    fiddle();
                    break;
11              case 3:
                    fiddle();
                    break;
                default:
                    fiddle();
                    break;
            }
        }
    }
}

Source https://phpmd.org/rules/codesize.html#cyclomaticcomplexity

Missing class import via use statement (line '78', column '31').
Open

                    throw new \RuntimeException('You should remove usage of nodes before remove alias ' . $aliasId);

MissingImport

Since: 2.7.0

Importing all external classes in a file through use statements makes them clearly visible.

Example

function make() {
    return new \stdClass();
}

Source http://phpmd.org/rules/cleancode.html#MissingImport

Class extends undeclared class \Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand
Open

class OrchestraDeleteAliasCommand extends ContainerAwareCommand

Reference to constant REQUIRED from undeclared class \Symfony\Component\Console\Input\InputArgument
Open

            ->addArgument('aliasId', InputArgument::REQUIRED);

Call to method __construct from undeclared class \Symfony\Component\Console\Style\SymfonyStyle
Open

        $io = new SymfonyStyle($input, $output);

Call to method comment from undeclared class \Symfony\Component\Console\Style\SymfonyStyle
Open

                $io->comment('Remove use references of nodes');

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::getContainer
Open

                        $this->getContainer()->get('open_orchestra_backoffice.reference.manager')->removeReferencesToEntity($node);

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::getContainer
Open

        $objectManager = $this->getContainer()->get('object_manager');

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::getContainer
Open

                $deleteSiteTools = $this->getContainer()->get('open_orchestra_backoffice.command.orchestra_delete_site_tools');

Call to method section from undeclared class \Symfony\Component\Console\Style\SymfonyStyle
Open

                    $io->section('Usage of nodes in other sites');

Call to method getArgument from undeclared class \Symfony\Component\Console\Input\InputInterface
Open

        $aliasId = $input->getArgument('aliasId');

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::getContainer
Open

        $siteClass = $this->getContainer()->getParameter('open_orchestra_model.document.site.class');

Parameter $output has undeclared type \Symfony\Component\Console\Output\OutputInterface
Open

    protected function execute(InputInterface $input, OutputInterface $output)

Parameter $input has undeclared type \Symfony\Component\Console\Input\InputInterface
Open

    protected function execute(InputInterface $input, OutputInterface $output)

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::setName
Open

        $this

Call to undeclared method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::getContainer
Open

        $nodeClass = $this->getContainer()->getParameter('open_orchestra_model.document.node.class');

Method \OpenOrchestra\BackofficeBundle\Command\OrchestraDeleteAliasCommand::execute is declared to return int but has no return value
Open

    protected function execute(InputInterface $input, OutputInterface $output)

Call to method comment from undeclared class \Symfony\Component\Console\Style\SymfonyStyle
Open

                $io->comment('Remove nodes');

Avoid variables with short names like $io. Configured minimum length is 3.
Open

        $io = new SymfonyStyle($input, $output);

ShortVariable

Since: 0.2

Detects when a field, local, or parameter has a very short name.

Example

class Something {
    private $q = 15; // VIOLATION - Field
    public static function main( array $as ) { // VIOLATION - Formal
        $r = 20 + $this->q; // VIOLATION - Local
        for (int $i = 0; $i < 10; $i++) { // Not a Violation (inside FOR)
            $r += $this->q;
        }
    }
}

Source https://phpmd.org/rules/naming.html#shortvariable

Blank line found at end of control structure
Open


Line exceeds 120 characters; contains 131 characters
Open

                        $this->getContainer()->get('open_orchestra_backoffice.reference.manager')->removeReferencesToEntity($node);

Line exceeds 120 characters; contains 127 characters
Open

                $deleteSiteTools = $this->getContainer()->get('open_orchestra_backoffice.command.orchestra_delete_site_tools');

Expected 1 space after IF keyword; 0 found
Open

        if($site instanceof $siteClass) {

Expected 0 spaces before closing bracket; newline found
Open

            ->findOneBy(array(

There are no issues that match your filters.

Category
Status