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.