Forbids public and/or protected getters (getXxx()) and setters (setXxx()) on classes matching specified patterns. This is useful for enforcing immutability or encapsulation in domain entities or value objects.
-
class: Phauthentic\PHPStanRules\Architecture\ForbiddenAccessorsRule
arguments:
classPatterns:
- '/^App\\Domain\\.*Entity$/'
- '/^App\\Domain\\.*ValueObject$/'
forbidGetters: true
forbidSetters: true
visibility:
- public
tags:
- phpstan.rules.ruleclassPatterns: Array of regex patterns to match against class FQCNs.forbidGetters: Whether to forbidgetXxx()methods (default:true).forbidSetters: Whether to forbidsetXxx()methods (default:true).visibility: Array of visibilities to check. Valid values arepublicandprotected(default:['public']).
To enforce immutability while still allowing getters:
-
class: Phauthentic\PHPStanRules\Architecture\ForbiddenAccessorsRule
arguments:
classPatterns:
- '/^App\\Domain\\.*Entity$/'
forbidGetters: false
forbidSetters: true
visibility:
- public
- protected
tags:
- phpstan.rules.ruleTo enforce the "Tell, Don't Ask" principle on domain entities:
-
class: Phauthentic\PHPStanRules\Architecture\ForbiddenAccessorsRule
arguments:
classPatterns:
- '/^App\\Domain\\Model\\/'
forbidGetters: true
forbidSetters: true
visibility:
- public
- protected
tags:
- phpstan.rules.rule