Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9764478

Browse files
javiereguiluzwouterj
authored andcommitted
Add tests for highlighting PHP attributes
1 parent 35ae0d5 commit 9764478

File tree

3 files changed

+202
-0
lines changed

3 files changed

+202
-0
lines changed

tests/IntegrationTest.php

+4
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,10 @@ public function parserUnitBlockProvider()
290290
'blockName' => 'code-blocks/php-annotations',
291291
];
292292

293+
yield 'code-block-php-attributes' => [
294+
'blockName' => 'code-blocks/php-attributes',
295+
];
296+
293297
yield 'code-block-text' => [
294298
'blockName' => 'code-blocks/text',
295299
];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<div translate="no" data-loc="48" class="notranslate codeblock codeblock-length-md codeblock-php-attributes codeblock-php">
2+
<div class="codeblock-scroll">
3+
<pre class="codeblock-lines">1
4+
2
5+
3
6+
4
7+
5
8+
6
9+
7
10+
8
11+
9
12+
10
13+
11
14+
12
15+
13
16+
14
17+
15
18+
16
19+
17
20+
18
21+
19
22+
20
23+
21
24+
22
25+
23
26+
24
27+
25
28+
26
29+
27
30+
28
31+
29
32+
30
33+
31
34+
32
35+
33
36+
34
37+
35
38+
36
39+
37
40+
38
41+
39
42+
40
43+
41
44+
42
45+
43
46+
44
47+
45
48+
46
49+
47
50+
48</pre>
51+
<pre class="codeblock-code">
52+
<code>
53+
<span class="hljs-comment">// src/SomePath/SomeClass.php</span>
54+
<span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>\<span class="hljs-title">SomePath</span>;
55+
<span class="hljs-keyword">use</span><span class="hljs-title">Symfony</span>\<span class="hljs-title">Component</span>\<span class="hljs-title">Validator</span>\<span class="hljs-title">Constraints</span> <span class="hljs-title">as</span> <span class="hljs-title">Assert</span>;
56+
<span class="hljs-class">
57+
<span class="hljs-keyword">class</span>
58+
<span class="hljs-title">SomeClass</span>
59+
</span>
60+
{
61+
<span class="hljs-php-attribute">#[AttributeName]</span>
62+
<span class="hljs-keyword">private</span>
63+
<span class="hljs-variable">
64+
<span class="hljs-variable-other-marker">$</span> property1</span>
65+
;
66+
<span class="hljs-php-attribute">#[AttributeName(</span>
67+
<span class="hljs-php-attribute">)]</span>
68+
<span class="hljs-keyword">private</span>
69+
<span class="hljs-variable">
70+
<span class="hljs-variable-other-marker">$</span> property2</span>
71+
;
72+
<span class="hljs-php-attribute">#[AttributeName(</span>
73+
<span class="hljs-string">'value'</span>
74+
<span class="hljs-php-attribute">)]</span>
75+
<span class="hljs-keyword">private</span>
76+
<span class="hljs-variable">
77+
<span class="hljs-variable-other-marker">$</span> property3</span>
78+
;
79+
<span class="hljs-php-attribute">#[AttributeName(</span>
80+
<span class="hljs-string">'value'</span>
81+
, option:
82+
<span class="hljs-string">'value'</span>
83+
<span class="hljs-php-attribute">)]</span>
84+
<span class="hljs-keyword">private</span>
85+
<span class="hljs-variable">
86+
<span class="hljs-variable-other-marker">$</span> property4</span>
87+
;
88+
<span class="hljs-php-attribute">#[AttributeName(</span>
89+
[<span class="hljs-string">'value'</span> =&gt; <span class="hljs-string">'value'</span>]<span class="hljs-php-attribute">)]</span>
90+
<span class="hljs-keyword">private</span>
91+
<span class="hljs-variable">
92+
<span class="hljs-variable-other-marker">$</span> property5</span>
93+
;
94+
<span class="hljs-php-attribute">#[AttributeName(</span>
95+
<span class="hljs-string">'value'</span>
96+
, option:
97+
<span class="hljs-string">'value'</span>
98+
<span class="hljs-php-attribute">)]</span>
99+
<span class="hljs-keyword">private</span>
100+
<span class="hljs-variable">
101+
<span class="hljs-variable-other-marker">$</span> property6</span>
102+
;
103+
<span class="hljs-php-attribute">#[Assert\AttributeName(</span>
104+
<span class="hljs-string">'value'</span>
105+
<span class="hljs-php-attribute">)]</span>
106+
<span class="hljs-keyword">private</span>
107+
<span class="hljs-variable">
108+
<span class="hljs-variable-other-marker">$</span> property7</span>
109+
;
110+
<span class="hljs-php-attribute">#[Assert\AttributeName(</span>
111+
<span class="hljs-string">'value'</span>
112+
, option:
113+
<span class="hljs-string">'value'</span>
114+
<span class="hljs-php-attribute">)]</span>
115+
<span class="hljs-keyword">private</span>
116+
<span class="hljs-variable">
117+
<span class="hljs-variable-other-marker">$</span> property8</span>
118+
;
119+
<span class="hljs-php-attribute">#[Route(</span>
120+
<span class="hljs-string">'/blog/{page&lt;\d+&gt;}'</span>
121+
, name:
122+
<span class="hljs-string">'blog_list'</span>
123+
<span class="hljs-php-attribute">)]</span>
124+
<span class="hljs-keyword">private</span>
125+
<span class="hljs-variable">
126+
<span class="hljs-variable-other-marker">$</span> property9</span>
127+
;
128+
<span class="hljs-php-attribute">#[Assert\GreaterThanOrEqual(</span>
129+
value:
130+
<span class="hljs-number">18</span>
131+
,
132+
<span class="hljs-php-attribute">)]</span>
133+
<span class="hljs-keyword">private</span>
134+
<span class="hljs-variable">
135+
<span class="hljs-variable-other-marker">$</span> property10</span>
136+
;
137+
<span class="hljs-php-attribute">#[ORM\CustomIdGenerator(</span>
138+
class:
139+
<span class="hljs-string">'doctrine.uuid_generator'</span>
140+
<span class="hljs-php-attribute">)]</span>
141+
<span class="hljs-keyword">private</span>
142+
<span class="hljs-variable">
143+
<span class="hljs-variable-other-marker">$</span> property11</span>
144+
;
145+
}</code></pre>
146+
</div>
147+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
.. code-block:: php-attributes
2+
3+
// src/SomePath/SomeClass.php
4+
namespace App\SomePath;
5+
6+
use Symfony\Component\Validator\Constraints as Assert;
7+
8+
class SomeClass
9+
{
10+
#[AttributeName]
11+
private $property1;
12+
13+
#[AttributeName()]
14+
private $property2;
15+
16+
#[AttributeName('value')]
17+
private $property3;
18+
19+
#[AttributeName('value', option: 'value')]
20+
private $property4;
21+
22+
#[AttributeName(['value' => 'value'])]
23+
private $property5;
24+
25+
#[AttributeName(
26+
'value',
27+
option: 'value'
28+
)]
29+
private $property6;
30+
31+
#[Assert\AttributeName('value')]
32+
private $property7;
33+
34+
#[Assert\AttributeName(
35+
'value',
36+
option: 'value'
37+
)]
38+
private $property8;
39+
40+
#[Route('/blog/{page<\d+>}', name: 'blog_list')]
41+
private $property9;
42+
43+
#[Assert\GreaterThanOrEqual(
44+
value: 18,
45+
)]
46+
private $property10;
47+
48+
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
49+
private $property11;
50+
}
51+

0 commit comments

Comments
 (0)