Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/html/stolberg/web/core/lib/Drupal/Core/Template/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/html/stolberg/web/core/lib/Drupal/Core/Template/TwigNodeVisitorCheckDeprecations.php

<?php

namespace Drupal\Core\Template;

use Twig\Environment;
use Twig\Node\Expression\AssignNameExpression;
use Twig\Node\Expression\NameExpression;
use Twig\Node\ModuleNode;
use Twig\Node\Node;
use Twig\Node\Nodes;
use Twig\NodeVisitor\NodeVisitorInterface;

/**
 * Provides a Node Visitor to trigger errors if deprecated variables are used.
 *
 * Every use of a named variable is tracked, and the used variable names are
 * passed to TwigExtension::checkDeprecations at runtime for comparison against
 * those in the 'deprecated' array in the template context.
 *
 * @see \Drupal\Core\Template\TwigNodeCheckDeprecations
 */
class TwigNodeVisitorCheckDeprecations implements NodeVisitorInterface {

  /**
   * The named variables used in the template from the context.
   */
  protected array $usedNames = [];

  /**
   * The named variables set within the template.
   */
  protected array $assignedNames = [];

  /**
   * {@inheritdoc}
   */
  public function enterNode(Node $node, Environment $env): Node {
    if ($node instanceof ModuleNode) {
      $this->usedNames = [];
      $this->assignedNames = [];
    }
    elseif ($node instanceof AssignNameExpression) {
      // Setting a variable makes subsequent usage is safe.
      $this->assignedNames[$node->getAttribute('name')] = $node->getAttribute('name');
    }
    elseif ($node instanceof NameExpression) {
      // Track each usage of a variable, unless set within the template.
      $name = $node->getAttribute('name');
      if (!in_array($name, $this->assignedNames)) {
        $this->usedNames[$name] = $name;
      }
    }
    return $node;
  }

  /**
   * {@inheritdoc}
   */
  public function leaveNode(Node $node, Environment $env): ?Node {
    // At the end of the template, check the used variables are not deprecated.
    if ($node instanceof ModuleNode) {
      if (!empty($this->usedNames)) {
        $checkNode = new Nodes([new TwigNodeCheckDeprecations($this->usedNames), $node->getNode('display_end')]);
        $node->setNode('display_end', $checkNode);
      }
    }
    return $node;
  }

  /**
   * {@inheritdoc}
   */
  public function getPriority(): int {
    // Just above the Optimizer, which is the normal last one.
    return 256;
  }

}

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net