<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\CssSelector\Node; use Symfony\Component\CssSelector\Parser\Token; /** * Represents a "<selector>:<name>(<arguments>)" node. * * This component is a port of the Python cssselect library, * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. * * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com> * * @internal */ class FunctionNode extends AbstractNode { private NodeInterface $selector; private string $name; private array $arguments; /** * @param Token[] $arguments */ public function __construct(NodeInterface $selector, string $name, array $arguments = []) { $this->selector = $selector; $this->name = strtolower($name); $this->arguments = $arguments; } public function getSelector(): NodeInterface { return $this->selector; } public function getName(): string { return $this->name; } /** * @return Token[] */ public function getArguments(): array { return $this->arguments; } public function getSpecificity(): Specificity { return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0)); } public function __toString(): string { $arguments = implode(', ', array_map(function (Token $token) { return "'".$token->getValue()."'"; }, $this->arguments)); return sprintf('%s[%s:%s(%s)]', $this->getNodeName(), $this->selector, $this->name, $arguments ? '['.$arguments.']' : ''); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
AbstractNode.php | File | 793 B | 0644 |
|
AttributeNode.php | File | 2.08 KB | 0644 |
|
ClassNode.php | File | 1.25 KB | 0644 |
|
CombinedSelectorNode.php | File | 1.61 KB | 0644 |
|
ElementNode.php | File | 1.33 KB | 0644 |
|
FunctionNode.php | File | 1.78 KB | 0644 |
|
HashNode.php | File | 1.24 KB | 0644 |
|
NegationNode.php | File | 1.35 KB | 0644 |
|
NodeInterface.php | File | 715 B | 0644 |
|
PseudoNode.php | File | 1.31 KB | 0644 |
|
SelectorNode.php | File | 1.4 KB | 0644 |
|
Specificity.php | File | 1.77 KB | 0644 |
|