drupalmoduleupgrader-8.x-1.5/src/Utility/Filter/FieldValueFilter.php

src/Utility/Filter/FieldValueFilter.php
<?php

namespace Drupal\drupalmoduleupgrader\Utility\Filter;

use Pharborist\ArrayLookupNode;
use Pharborist\Node;
use Pharborist\Objects\ObjectPropertyNode;
use Pharborist\Variables\VariableNode;

/**
 * Filters for things that *look like* field accesses, e.g.
 * $foo->bar[LANGUAGE_NONE][0]['value']. This filter doesn't guarantee that
 * matched nodes actually ARE field accesses -- just that they have the proper
 * formation (S-foils in attack formation!...what, you don't like Star Wars?)
 */
class FieldValueFilter {

  /**
   * @var string
   */
  protected $variable;

  public function __construct($variable) {
    $this->variable = $variable;
  }

  /**
   * @return bool
   */
  public function __invoke(Node $node) {
    if ($node instanceof ArrayLookupNode) {
      $root = $node->getRootArray();

      if ($root instanceof ObjectPropertyNode) {
        $object = $root->getObject();

        if ($object instanceof VariableNode && $object->getName() == $this->variable) {
          return (sizeof($node->getKeys()) >= 3);
        }
      }
    }
    return FALSE;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc