PluginProbe
Smart Grid-Layout Design for Contact Form 7 / 3.3.3
Smart Grid-Layout Design for Contact Form 7 v3.3.3
4.18.0 4.17.0 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 4.0.0 4.0.1 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10 4.11 4.12 4.13 4.14 All 119 releases
cf7-grid-layout / assets / simple-html-dom / symfony / css-selector / Node / AttributeNode.php

AttributeNode.php in Smart Grid-Layout Design for Contact Form 7 3.3.3, at assets/simple-html-dom/symfony/css-selector/Node/AttributeNode.php

86 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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>[<namespace>|<attribute> <operator> <value>]" 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 AttributeNode extends AbstractNode
25 {
26 private $selector;
27 private $namespace;
28 private $attribute;
29 private $operator;
30 private $value;
31
32 public function __construct(NodeInterface $selector, ?string $namespace, string $attribute, string $operator, ?string $value)
33 {
34 $this->selector = $selector;
35 $this->namespace = $namespace;
36 $this->attribute = $attribute;
37 $this->operator = $operator;
38 $this->value = $value;
39 }
40
41 public function getSelector(): NodeInterface
42 {
43 return $this->selector;
44 }
45
46 public function getNamespace(): ?string
47 {
48 return $this->namespace;
49 }
50
51 public function getAttribute(): string
52 {
53 return $this->attribute;
54 }
55
56 public function getOperator(): string
57 {
58 return $this->operator;
59 }
60
61 public function getValue(): ?string
62 {
63 return $this->value;
64 }
65
66 /**
67 * {@inheritdoc}
68 */
69 public function getSpecificity(): Specificity
70 {
71 return $this->selector->getSpecificity()->plus(new Specificity(0, 1, 0));
72 }
73
74 /**
75 * {@inheritdoc}
76 */
77 public function __toString(): string
78 {
79 $attribute = $this->namespace ? $this->namespace.'|'.$this->attribute : $this->attribute;
80
81 return 'exists' === $this->operator
82 ? sprintf('%s[%s[%s]]', $this->getNodeName(), $this->selector, $attribute)
83 : sprintf("%s[%s[%s %s '%s']]", $this->getNodeName(), $this->selector, $attribute, $this->operator, $this->value);
84 }
85 }
86