Skip to content

Commit 3b6cf51

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 3b6cf51

File tree

6 files changed

+180
-109
lines changed

6 files changed

+180
-109
lines changed

.github/workflows/quicktest.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ jobs:
9595
strategy:
9696
matrix:
9797
php: ['5.4', 'latest']
98-
phpcs_version: ['dev-master']
98+
phpcs_version: ['3.1.0', 'dev-master']
9999

100100
include:
101101
- php: '7.2'
102-
phpcs_version: '3.1.0'
103-
- php: '5.4'
104-
phpcs_version: '3.1.0'
102+
phpcs_version: '4.x-dev'
103+
- php: 'latest'
104+
phpcs_version: '4.x-dev'
105105

106106
name: "QTest: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }}"
107107

@@ -114,7 +114,7 @@ jobs:
114114
- name: Setup ini config
115115
id: set_ini
116116
run: |
117-
if [ "${{ matrix.phpcs_version }}" != "dev-master" ]; then
117+
if [ "${{ contains( matrix.phpcs_version, 'dev' ) }}" != "true" ]; then
118118
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
119119
else
120120
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -129,10 +129,10 @@ jobs:
129129

130130
- name: 'Composer: adjust dependencies'
131131
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
134132
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
135133
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
134+
# Set the PHPCS version to be used in the tests.
135+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
136136
137137
# Install dependencies and handle caching in one go.
138138
# @link https://github.com/marketplace/actions/install-php-dependencies-with-composer

.github/workflows/test.yml

Lines changed: 33 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,8 @@ 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
173+
if [ "${{ startsWith( matrix.phpcs_version, 'dev-' ) || endsWith( matrix.phpcs_version, '-dev' ) }}" == "true" ]; then
174174
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
175175
else
176176
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -185,10 +185,10 @@ jobs:
185185

186186
- name: 'Composer: adjust dependencies'
187187
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
190188
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
191189
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
190+
# Set the PHPCS version to be used in the tests.
191+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
192192
193193
# Install dependencies and handle caching in one go.
194194
# @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)