marcelog/PAMI

View on GitHub

Showing 40 of 282 total issues

ConfbridgeMuteEvent has 22 functions (exceeds 20 allowed). Consider refactoring.
Open

class ConfbridgeMuteEvent extends EventMessage
{
    /**
     * Returns key: 'Privilege'.
     *
Severity: Minor
Found in src/PAMI/Message/Event/ConfbridgeMuteEvent.php - About 2 hrs to fix

    ConfbridgeJoinEvent has 22 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class ConfbridgeJoinEvent extends EventMessage
    {
        /**
         * Returns key: 'Privilege'.
         *
    Severity: Minor
    Found in src/PAMI/Message/Event/ConfbridgeJoinEvent.php - About 2 hrs to fix

      The class ClientImpl has 16 fields. Consider redesigning ClientImpl to keep the number of fields under 15.
      Open

      class ClientImpl implements IClient
      {
          /**
           * PSR-3 logger.
           * @var LoggerInterface
      Severity: Minor
      Found in src/PAMI/Client/Impl/ClientImpl.php by phpmd

      TooManyFields

      Since: 0.1

      Classes that have too many fields could be redesigned to have fewer fields, possibly through some nested object grouping of some of the information. For example, a class with city/state/zip fields could instead have one Address field.

      Example

      class Person {
         protected $one;
         private $two;
         private $three;
         [... many more fields ...]
      }

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

      Method __construct has 36 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          public function __construct($rawContent)
          {
              parent::__construct();
              $this->channelVariables = array('default' => array());
              $this->rawContent = $rawContent;
      Severity: Minor
      Found in src/PAMI/Message/IncomingMessage.php - About 1 hr to fix

        Function process has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
        Open

            public function process()
            {
                $msgs = $this->getMessages();
                foreach ($msgs as $aMsg) {
                    $this->logger->debug(
        Severity: Minor
        Found in src/PAMI/Client/Impl/ClientImpl.php - About 1 hr 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

        Function __construct has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
        Open

            public function __construct($rawContent)
            {
                parent::__construct();
                $this->channelVariables = array('default' => array());
                $this->rawContent = $rawContent;
        Severity: Minor
        Found in src/PAMI/Message/IncomingMessage.php - About 1 hr 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 open has 31 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            public function open()
            {
                $cString = $this->scheme . $this->host . ':' . $this->port;
                $this->context = stream_context_create();
                $errno = 0;
        Severity: Minor
        Found in src/PAMI/Client/Impl/ClientImpl.php - About 1 hr to fix

          Method handle has 30 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              public function handle(EventMessage $event)
              {
                  if ($event instanceof \PAMI\Message\Event\AsyncAGIEvent) {
                      if ($event->getSubEvent() == 'Start') {
                          switch($pid = pcntl_fork())
          Severity: Minor
          Found in doc/examples/asyncagi/example.php - About 1 hr to fix

            The class AttendedTransferEvent has 77 public methods and attributes. Consider reducing the number of public items to less than 45.
            Open

            class AttendedTransferEvent extends EventMessage
            {
                const RESULT_FAIL = 'Fail';
                const RESULT_INVALID = 'Invalid';
                const RESULT_NOT_PERMITTED = 'Not Permitted';

            ExcessivePublicCount

            Since: 0.1

            A large number of public methods and attributes declared in a class can indicate the class may need to be broken up as increased effort will be required to thoroughly test it.

            Example

            public class Foo {
                public $value;
                public $something;
                public $var;
                // [... more more public attributes ...]
            
                public function doWork() {}
                public function doMoreWork() {}
                public function doWorkAgain() {}
                // [... more more public methods ...]
            }

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

            The class DongleDeviceEntryEvent has 59 public methods and attributes. Consider reducing the number of public items to less than 45.
            Open

            class DongleDeviceEntryEvent extends EventMessage
            {
                /**
                 * Returns key: 'Device'.
                 *

            ExcessivePublicCount

            Since: 0.1

            A large number of public methods and attributes declared in a class can indicate the class may need to be broken up as increased effort will be required to thoroughly test it.

            Example

            public class Foo {
                public $value;
                public $something;
                public $var;
                // [... more more public attributes ...]
            
                public function doWork() {}
                public function doMoreWork() {}
                public function doWorkAgain() {}
                // [... more more public methods ...]
            }

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

            The class UnParkedCallEvent has 51 public methods and attributes. Consider reducing the number of public items to less than 45.
            Open

            class UnParkedCallEvent extends EventMessage
            {
                /**
                 * Returns key: 'Privilege'.
                 *

            ExcessivePublicCount

            Since: 0.1

            A large number of public methods and attributes declared in a class can indicate the class may need to be broken up as increased effort will be required to thoroughly test it.

            Example

            public class Foo {
                public $value;
                public $something;
                public $var;
                // [... more more public attributes ...]
            
                public function doWork() {}
                public function doMoreWork() {}
                public function doWorkAgain() {}
                // [... more more public methods ...]
            }

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

            Method process has 29 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                public function process()
                {
                    $msgs = $this->getMessages();
                    foreach ($msgs as $aMsg) {
                        $this->logger->debug(
            Severity: Minor
            Found in src/PAMI/Client/Impl/ClientImpl.php - About 1 hr to fix

              Function dispatch has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
              Open

                  protected function dispatch(IncomingMessage $message)
                  {
                      foreach ($this->eventListeners as $data) {
                          $listener = $data[0];
                          $predicate = $data[1];
              Severity: Minor
              Found in src/PAMI/Client/Impl/ClientImpl.php - About 55 mins 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

              Function serialize has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
              Open

                  public function serialize()
                  {
                      $result = array();
                      foreach ($this->getKeys() as $k => $v) {
                          $result[] = $k . ': ' . $v;
              Severity: Minor
              Found in src/PAMI/Message/Message.php - About 45 mins 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

              Function getChannelVariables has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  public function getChannelVariables($channel = null)
                  {
                      if (is_null($channel)) {
                          if (!isset($this->keys['channel'])) {
                              return $this->getChannelVariables('default');
              Severity: Minor
              Found in src/PAMI/Message/IncomingMessage.php - About 35 mins 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

              Function handle has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  public function handle(EventMessage $event)
                  {
                      if ($event instanceof \PAMI\Message\Event\AsyncAGIEvent) {
                          if ($event->getSubEvent() == 'Start') {
                              switch($pid = pcntl_fork())
              Severity: Minor
              Found in doc/examples/asyncagi/example.php - About 35 mins 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

              Function send has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
              Open

                  public function send(OutgoingMessage $message)
                  {
                      $messageToSend = $message->serialize();
                      $length = strlen($messageToSend);
                      $this->logger->debug(
              Severity: Minor
              Found in src/PAMI/Client/Impl/ClientImpl.php - About 25 mins 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

              The method run() has an NPath complexity of 12288. The configured NPath complexity threshold is 200.
              Open

                  public function run()
                  {
                      $this->log('Run');
                      $client = $this->getAgi();
                      $loggerFacade = $client->getAsteriskLogger();

              NPathComplexity

              Since: 0.1

              The NPath complexity of a method is the number of acyclic execution paths through that method. A threshold of 200 is generally considered the point where measures should be taken to reduce complexity.

              Example

              class Foo {
                  function bar() {
                      // lots of complicated code
                  }
              }

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

              The method run() has 164 lines of code. Current threshold is set to 100. Avoid really long methods.
              Open

                  public function run()
                  {
                      $this->log('Run');
                      $client = $this->getAgi();
                      $loggerFacade = $client->getAsteriskLogger();

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

                  public function run()
                  {
                      $this->log('Run');
                      $client = $this->getAgi();
                      $loggerFacade = $client->getAsteriskLogger();

              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

              Severity
              Category
              Status
              Source
              Language