Skip to content

Commit ca2362a

Browse files
committed
Officially support PHP_CodeSniffer 4.0
PHPCSDevTools currently only contains one tool which has a dependency on PHPCS: PHPCSDebug. PHPCSDebug is already compatible with PHPCS 4.0, no changed needed. The only thing which does need a change is the test expectations as the tokenization of the PHP open tag has changed in PHPCS 4.0, which means the output expectation will be different between PHPCS 3.x vs 4.x. Includes: * Explicitly declaring compatibility with PHPCS 4.0 in the `composer.json` file. * Updating the workflows to use the new PHPCS 4.x branch for testing. * Updating the workflow to structurally test against both PHPCS 3.x as well as 4.x. * Not allowing builds against PHPCS 4.x to fail anymore.
1 parent 9b3bc21 commit ca2362a

File tree

6 files changed

+188
-109
lines changed

6 files changed

+188
-109
lines changed

.github/workflows/quicktest.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,22 @@ jobs:
9595
strategy:
9696
matrix:
9797
php: ['5.4', 'latest']
98-
phpcs_version: ['dev-master']
98+
phpcs_version: ['3.1.0', 'dev-master']
99+
100+
exclude:
101+
# PHP 3.1.0 is incompatible with PHP >= 8.0.
102+
- php: 'latest'
103+
phpcs_version: '3.1.0'
99104

100105
include:
106+
# Replacement build for "low" PHPCS 3.x on PHP latest.
107+
- php: 'latest'
108+
phpcs_version: '3.8.0'
109+
101110
- php: '7.2'
102-
phpcs_version: '3.1.0'
103-
- php: '5.4'
104-
phpcs_version: '3.1.0'
111+
phpcs_version: '4.x-dev'
112+
- php: 'latest'
113+
phpcs_version: '4.x-dev'
105114

106115
name: "QTest: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }}"
107116

@@ -114,7 +123,7 @@ jobs:
114123
- name: Setup ini config
115124
id: set_ini
116125
run: |
117-
if [ "${{ matrix.phpcs_version }}" != "dev-master" ]; then
126+
if [ "${{ contains( matrix.phpcs_version, 'dev' ) }}" != "true" ]; then
118127
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
119128
else
120129
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -129,10 +138,10 @@ jobs:
129138

130139
- name: 'Composer: adjust dependencies'
131140
run: |
132-
# Set the PHPCS version to be used in the tests.
133-
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
134141
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
135142
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
143+
# Set the PHPCS version to be used in the tests.
144+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
136145
137146
# Install dependencies and handle caching in one go.
138147
# @link https://github.com/marketplace/actions/install-php-dependencies-with-composer

.github/workflows/test.yml

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -110,56 +110,55 @@ jobs:
110110
# - PHP 8.2 needs PHPCS 3.6.1+ to run without errors.
111111
# - PHP 8.3 needs PHPCS 3.8.0+ to run without errors (though the errors don't affect this package).
112112
# - PHP 8.4 needs PHPCS 3.8.0+ to run without errors (officially 3.11.0, but 3.8.0 will work fine).
113-
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2']
114-
phpcs_version: ['3.1.0', 'dev-master']
113+
#
114+
# Additionally, PHPCS 4.x has a minimum version requirement of PHP 7.2.
115+
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
116+
phpcs_version: ['dev-master', '4.x-dev']
117+
118+
exclude:
119+
- php: '5.4'
120+
phpcs_version: '4.x-dev'
121+
- php: '5.5'
122+
phpcs_version: '4.x-dev'
123+
- php: '5.6'
124+
phpcs_version: '4.x-dev'
125+
- php: '7.0'
126+
phpcs_version: '4.x-dev'
127+
- php: '7.1'
128+
phpcs_version: '4.x-dev'
115129

116130
include:
117131
# Complete the matrix, while preventing issues with PHPCS versions incompatible with certain PHP versions.
118-
- php: '7.3'
119-
phpcs_version: 'dev-master'
132+
- php: '5.4'
133+
phpcs_version: '3.1.0'
134+
- php: '5.5'
135+
phpcs_version: '3.1.0'
136+
- php: '5.6'
137+
phpcs_version: '3.1.0'
138+
- php: '7.0'
139+
phpcs_version: '3.1.0'
140+
- php: '7.1'
141+
phpcs_version: '3.1.0'
142+
- php: '7.2'
143+
phpcs_version: '3.1.0'
120144
- php: '7.3'
121145
phpcs_version: '3.3.1'
122-
123-
- php: '7.4'
124-
phpcs_version: 'dev-master'
125146
- php: '7.4'
126147
phpcs_version: '3.5.0'
127-
128-
- php: '8.0'
129-
phpcs_version: 'dev-master'
130148
- php: '8.0'
131149
phpcs_version: '3.5.7'
132-
133-
- php: '8.1'
134-
phpcs_version: 'dev-master'
135150
- php: '8.1'
136151
phpcs_version: '3.6.1'
137-
138-
- php: '8.2'
139-
phpcs_version: 'dev-master'
140152
- php: '8.2'
141153
phpcs_version: '3.6.1'
142-
143-
- php: '8.3'
144-
phpcs_version: 'dev-master'
145154
- php: '8.3'
146155
phpcs_version: '3.8.0'
147-
148-
- php: '8.4'
149-
phpcs_version: 'dev-master'
150156
- php: '8.4'
151157
phpcs_version: '3.8.0'
152158

153-
# Experimental builds. These are allowed to fail.
154-
- php: '7.4'
155-
phpcs_version: '4.0.x-dev'
156-
157-
- php: '8.5' # Nightly.
158-
phpcs_version: 'dev-master'
159-
160159
name: "Test: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }}"
161160

162-
continue-on-error: ${{ matrix.php == '8.5' || matrix.phpcs_version == '4.0.x-dev' }}
161+
continue-on-error: ${{ matrix.php == '8.5' }}
163162

164163
steps:
165164
- name: Checkout code
@@ -170,7 +169,7 @@ jobs:
170169
run: |
171170
# On stable PHPCS versions, allow for PHP deprecation notices.
172171
# Unit tests don't need to fail on those for stable releases where those issues won't get fixed anymore.
173-
if [[ "${{ matrix.phpcs_version }}" != "dev-master" && "${{ matrix.phpcs_version }}" != "4.0.x-dev" ]]; then
172+
if [ "${{ contains( matrix.phpcs_version, 'dev' ) }}" != "true" ]; then
174173
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
175174
else
176175
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -185,10 +184,10 @@ jobs:
185184

186185
- name: 'Composer: adjust dependencies'
187186
run: |
188-
# Set the PHPCS version to be used in the tests.
189-
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
190187
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
191188
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
189+
# Set the PHPCS version to be used in the tests.
190+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
192191
193192
# Install dependencies and handle caching in one go.
194193
# @link https://github.com/marketplace/actions/install-php-dependencies-with-composer
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
3+
--------------------------------------------------------------------------
4+
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
5+
6+
1 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
7+
8+
2 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
9+
3 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
10+
4 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
11+
5 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
12+
6 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
13+
14+
7 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
15+
8 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
16+
9 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
17+
10 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
18+
11 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
19+
12 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
20+
13 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
21+
14 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
22+
15 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
23+
24+
16 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
25+
17 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
26+
18 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
27+
19 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
28+
20 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
29+
21 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
30+
22 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
31+
23 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
32+
24 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
33+
25 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
34+
26 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
35+
27 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
36+
28 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
37+
29 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
38+
30 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
39+
31 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
40+
32 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
41+
33 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
42+
34 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
43+
35 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
44+
36 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
45+
46+
37 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
47+
38 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
48+
49+
39 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
50+
40 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
51+
52+
41 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
53+
42 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
54+
43 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
55+
56+
44 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
57+
45 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
58+
46 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
59+
47 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
60+
48 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
61+
49 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
62+
63+
50 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
64+
51 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
65+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
2+
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
3+
--------------------------------------------------------------------------
4+
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
5+
1 | L01 | C 6 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
6+
7+
2 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
8+
9+
3 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
10+
4 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
11+
5 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
12+
6 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
13+
7 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
14+
15+
8 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
16+
9 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
17+
10 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
18+
11 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
19+
12 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
20+
13 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
21+
14 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
22+
15 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
23+
16 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
24+
25+
17 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
26+
18 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
27+
19 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
28+
20 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
29+
21 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
30+
22 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
31+
23 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
32+
24 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
33+
25 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
34+
26 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
35+
27 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
36+
28 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
37+
29 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
38+
30 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
39+
31 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
40+
32 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
41+
33 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
42+
34 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
43+
35 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
44+
36 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
45+
37 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
46+
47+
38 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
48+
39 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
49+
50+
40 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
51+
41 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
52+
53+
42 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
54+
43 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
55+
44 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
56+
57+
45 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
58+
46 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
59+
47 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
60+
48 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
61+
49 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
62+
50 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
63+
64+
51 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
65+
52 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
66+

PHPCSDebug/Tests/Debug/TokenListUnitTest.php

Lines changed: 8 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
namespace PHPCSDebug\Tests\Debug;
1212

13+
use PHP_CodeSniffer\Config;
1314
use PHP_CodeSniffer\Util\Common;
1415
use PHPCSUtils\TestUtils\UtilityMethodTestCase;
1516

@@ -37,74 +38,13 @@ final class TokenListUnitTest extends UtilityMethodTestCase
3738
*/
3839
public function testOutput()
3940
{
40-
$expected = <<<'EOD'
41-
42-
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
43-
--------------------------------------------------------------------------
44-
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
45-
46-
1 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
47-
48-
2 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
49-
3 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
50-
4 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
51-
5 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
52-
6 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
53-
54-
7 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
55-
8 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
56-
9 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
57-
10 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
58-
11 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
59-
12 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
60-
13 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
61-
14 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
62-
15 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
63-
64-
16 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
65-
17 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
66-
18 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
67-
19 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
68-
20 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
69-
21 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
70-
22 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
71-
23 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
72-
24 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
73-
25 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
74-
26 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
75-
27 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
76-
28 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
77-
29 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
78-
30 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
79-
31 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
80-
32 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
81-
33 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
82-
34 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
83-
35 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
84-
36 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
85-
86-
37 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
87-
38 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
88-
89-
39 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
90-
40 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
91-
92-
41 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
93-
42 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
94-
43 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
95-
96-
44 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
97-
45 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
98-
46 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
99-
47 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
100-
48 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
101-
49 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
102-
103-
50 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
104-
51 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
105-
106-
107-
EOD;
41+
if (version_compare(Config::VERSION, '3.99.99', '>') === true) {
42+
// As of PHPCS 4.0, whitespace after the long PHP open tag is tokenized separately,
43+
// hence the difference in test expectations.
44+
$expected = file_get_contents(__DIR__ . '/TokenListExpectationPhpcs4.txt');
45+
} else {
46+
$expected = file_get_contents(__DIR__ . '/TokenListExpectationPhpcs3.txt');
47+
}
10848

10949
if (empty(self::$phpcsFile->ruleset->tokenListeners)) {
11050
// PHPCSUtils 1.0.9+.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
"require" : {
2525
"php" : ">=5.4",
26-
"squizlabs/php_codesniffer" : "^3.1.0",
26+
"squizlabs/php_codesniffer" : "^3.1.0 || ^4.0",
2727
"dealerdirect/phpcodesniffer-composer-installer" : "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0"
2828
},
2929
"require-dev" : {

0 commit comments

Comments
 (0)