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.