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

Breadcrumb

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

class CombinationExtension

XPath expression translator combination extension.

This component is a port of the Python cssselect library, which is copyright Ian Bicking, @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>

@internal

Hierarchy

  • class \Symfony\Component\CssSelector\XPath\Extension\AbstractExtension implements \Symfony\Component\CssSelector\XPath\Extension\ExtensionInterface
    • class \Symfony\Component\CssSelector\XPath\Extension\CombinationExtension extends \Symfony\Component\CssSelector\XPath\Extension\AbstractExtension

Expanded class hierarchy of CombinationExtension

See also

https://github.com/SimonSapin/cssselect.

File

vendor/symfony/css-selector/XPath/Extension/CombinationExtension.php, line 26

Namespace

Symfony\Component\CssSelector\XPath\Extension
View source
class CombinationExtension extends AbstractExtension {
    public function getCombinationTranslators() : array {
        return [
            ' ' => $this->translateDescendant(...),
            '>' => $this->translateChild(...),
            '+' => $this->translateDirectAdjacent(...),
            '~' => $this->translateIndirectAdjacent(...),
        ];
    }
    public function translateDescendant(XPathExpr $xpath, XPathExpr $combinedXpath) : XPathExpr {
        return $xpath->join('/descendant-or-self::*/', $combinedXpath);
    }
    public function translateChild(XPathExpr $xpath, XPathExpr $combinedXpath) : XPathExpr {
        return $xpath->join('/', $combinedXpath);
    }
    public function translateDirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath) : XPathExpr {
        return $xpath->join('/following-sibling::', $combinedXpath)
            ->addNameTest()
            ->addCondition('position() = 1');
    }
    public function translateIndirectAdjacent(XPathExpr $xpath, XPathExpr $combinedXpath) : XPathExpr {
        return $xpath->join('/following-sibling::', $combinedXpath);
    }
    public function getName() : string {
        return 'combination';
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AbstractExtension::getAttributeMatchingTranslators public function Returns attribute operation translators. Overrides ExtensionInterface::getAttributeMatchingTranslators 1
AbstractExtension::getFunctionTranslators public function Returns function translators. Overrides ExtensionInterface::getFunctionTranslators 2
AbstractExtension::getNodeTranslators public function Returns node translators. Overrides ExtensionInterface::getNodeTranslators 1
AbstractExtension::getPseudoClassTranslators public function Returns pseudo-class translators. Overrides ExtensionInterface::getPseudoClassTranslators 2
CombinationExtension::getCombinationTranslators public function Returns combination translators. Overrides AbstractExtension::getCombinationTranslators
CombinationExtension::getName public function Returns extension name. Overrides ExtensionInterface::getName
CombinationExtension::translateChild public function
CombinationExtension::translateDescendant public function
CombinationExtension::translateDirectAdjacent public function
CombinationExtension::translateIndirectAdjacent public function
RSS feed
Powered by Drupal