class DependencySerializationTraitPropertyRule
@implements Rule<ClassPropertyNode>
Hierarchy
- class \mglaman\PHPStanDrupal\Rules\Drupal\DependencySerializationTraitPropertyRule implements \PHPStan\Rules\Rule
Expanded class hierarchy of DependencySerializationTraitPropertyRule
File
-
vendor/
mglaman/ phpstan-drupal/ src/ Rules/ Drupal/ DependencySerializationTraitPropertyRule.php, line 17
Namespace
mglaman\PHPStanDrupal\Rules\DrupalView source
final class DependencySerializationTraitPropertyRule implements Rule {
public function getNodeType() : string {
return ClassPropertyNode::class;
}
public function processNode(Node $node, Scope $scope) : array {
if (!$node->getClassReflection()
->hasTraitUse(DependencySerializationTrait::class)) {
return [];
}
$errors = [];
if ($node->isPrivate()) {
$errors[] = RuleErrorBuilder::message(sprintf('%s does not support private properties.', DependencySerializationTrait::class))->tip('See https://www.drupal.org/node/3110266')
->build();
}
if ($node->isReadOnly()) {
$errors[] = RuleErrorBuilder::message(sprintf('Read-only properties are incompatible with %s.', DependencySerializationTrait::class))->tip('See https://www.drupal.org/node/3110266')
->build();
}
return $errors;
}
}