[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/vendor/symfony/css-selector/Node/ -> PseudoNode.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 "<selector>:<identifier>" 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 PseudoNode extends AbstractNode
  25  {
  26      private $selector;
  27      private $identifier;
  28  
  29      public function __construct(NodeInterface $selector, string $identifier)
  30      {
  31          $this->selector = $selector;
  32          $this->identifier = strtolower($identifier);
  33      }
  34  
  35      public function getSelector(): NodeInterface
  36      {
  37          return $this->selector;
  38      }
  39  
  40      public function getIdentifier(): string
  41      {
  42          return $this->identifier;
  43      }
  44  
  45      /**
  46       * {@inheritdoc}
  47       */
  48      public function getSpecificity(): Specificity
  49      {
  50          return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
  51      }
  52  
  53      public function __toString(): string
  54      {
  55          return sprintf('%s[%s:%s]', $this->getNodeName(), $this->selector, $this->identifier);
  56      }
  57  }