[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/vendor/symfony/css-selector/Node/ -> ElementNode.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\CssSelector\Node;
  13  
  14  /**
  15   * Represents a "<namespace>|<element>" node.
  16   *
  17   * This component is a port of the Python cssselect library,
  18   * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  19   *
  20   * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
  21   *
  22   * @internal
  23   */
  24  class ElementNode extends AbstractNode
  25  {
  26      private $namespace;
  27      private $element;
  28  
  29      public function __construct(string $namespace = null, string $element = null)
  30      {
  31          $this->namespace = $namespace;
  32          $this->element = $element;
  33      }
  34  
  35      public function getNamespace(): ?string
  36      {
  37          return $this->namespace;
  38      }
  39  
  40      public function getElement(): ?string
  41      {
  42          return $this->element;
  43      }
  44  
  45      /**
  46       * {@inheritdoc}
  47       */
  48      public function getSpecificity(): Specificity
  49      {
  50          return new Specificity(0, 0, $this->element ? 1 : 0);
  51      }
  52  
  53      public function __toString(): string
  54      {
  55          $element = $this->element ?: '*';
  56  
  57          return sprintf('%s[%s]', $this->getNodeName(), $this->namespace ? $this->namespace.'|'.$element : $element);
  58      }
  59  }