Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. UsageOfDeprecatedCastRule.php

class UsageOfDeprecatedCastRule

@implements Rule<Cast>

Hierarchy

  • class \PHPStan\Rules\Deprecations\UsageOfDeprecatedCastRule implements \PHPStan\Rules\Rule

Expanded class hierarchy of UsageOfDeprecatedCastRule

File

vendor/phpstan/phpstan-deprecation-rules/src/Rules/Deprecations/UsageOfDeprecatedCastRule.php, line 15

Namespace

PHPStan\Rules\Deprecations
View source
class UsageOfDeprecatedCastRule implements Rule {
    
    /** @var DeprecatedScopeHelper */
    private $deprecatedScopeHelper;
    public function __construct(DeprecatedScopeHelper $deprecatedScopeHelper) {
        $this->deprecatedScopeHelper = $deprecatedScopeHelper;
    }
    public function getNodeType() : string {
        return Cast::class;
    }
    public function processNode(Node $node, Scope $scope) : array {
        if ($this->deprecatedScopeHelper
            ->isScopeDeprecated($scope)) {
            return [];
        }
        $castedType = $scope->getType($node->expr);
        if (!$castedType->hasMethod('__toString')
            ->yes()) {
            return [];
        }
        $method = $castedType->getMethod('__toString', $scope);
        if (!$method->isDeprecated()
            ->yes()) {
            return [];
        }
        $description = $method->getDeprecatedDescription();
        if ($description === null) {
            return [
                RuleErrorBuilder::message(sprintf('Casting class %s to string is deprecated.', $method->getDeclaringClass()
                    ->getName()))
                    ->identifier('class.toStringDeprecated')
                    ->build(),
            ];
        }
        return [
            RuleErrorBuilder::message(sprintf("Casting class %s to string is deprecated.:\n%s", $method->getDeclaringClass()
                ->getName(), $description))
                ->identifier('class.toStringDeprecated')
                ->build(),
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary
UsageOfDeprecatedCastRule::$deprecatedScopeHelper private property @var DeprecatedScopeHelper
UsageOfDeprecatedCastRule::getNodeType public function
UsageOfDeprecatedCastRule::processNode public function
UsageOfDeprecatedCastRule::__construct public function
RSS feed
Powered by Drupal