Details

    • Type: Language-Specification
    • Status: Active
    • Resolution: Unresolved
    • Labels:
      None
    • Impact:
      Unknown 'null' severity
    • Likelihood:
      Unknown 'null' severity

      Description

      When two methods have the same implementation, either it was a mistake - something else was intended - or the duplication was intentional, but may be confusing to maintainers. In the latter case, one implementation should invoke the other.

      Noncompliant Code Example

      class A {
          private const CODE = "bounteous";
          
          public function getCode() {
              doTheThing();
              return A::CODE;
          }
          
          public function getName() {  // Noncompliant
              doTheThing();
              return A::CODE;
          }
      }
      

      Compliant Solution

      class A {
          private const CODE = "bounteous";
          
          public function getCode() {
              doTheThing();
              return A::CODE;
          }
          
          public function getName() {
              return $this->getCode();
          }
      }
      

      Exceptions

      Methods that are not accessors (getters and setters), with fewer than 2 statements are ignored.

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            nicolas.peru Nicolas Peru
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated: