Skip to content

Commit

Permalink
Bring back support for PHP 5.3
Browse files Browse the repository at this point in the history
As Parallel Lint supports PHP 5.3 again since [PR 51](php-parallel-lint/PHP-Parallel-Lint#51), it would be helpful for the Highlighter repo to also support PHP 5.3.

This restores the PHP 5.3 minimum version along the same lines as before the version drop in 02b6aa6
The PHP 5.3.2 minimum is in-line with the PHP Console Color minimum version for PHP 5.3.

Includes:
* Enabling a build against PHP 5.3 in the GH Actions workflow.
* Adjusting the `testVersion` for the PHPCompatibility checks to `5.3-` (5.3 and higher).
  • Loading branch information
jrfnl committed Dec 27, 2021
1 parent a16b277 commit 14c2988
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 5 deletions.
7 changes: 6 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

strategy:
matrix:
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
php: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
experimental: [false]

include:
Expand All @@ -40,6 +40,11 @@ jobs:
coverage: none
tools: cs2pr

# Remove the PHPCS standard as it has a minimum PHP requirements of PHP 5.4 and would block install on PHP 5.3.
- name: 'Composer: remove PHPCS'
if: ${{ matrix.php < 5.4 }}
run: composer remove --dev php-parallel-lint/php-code-style --no-update --no-interaction

# Install dependencies and handle caching in one go.
# @link https://github.com/marketplace/actions/install-composer-dependencies
- name: Install Composer dependencies - normal
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
"psr-4": {"PHP_Parallel_Lint\\PhpConsoleHighlighter\\Test\\": "tests/"}
},
"require": {
"php": ">=5.4.0",
"php": ">=5.3.2",
"ext-tokenizer": "*",
"php-parallel-lint/php-console-color": "^1.0"
"php-parallel-lint/php-console-color": "^1.0.1"
},
"require-dev": {
"phpunit/phpunit": "^4.8.36 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0",
Expand Down
2 changes: 1 addition & 1 deletion phpcs.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
-->

<!-- Set the supported PHP versions for PHPCompatibility (included in PHPParallelLint). -->
<config name="testVersion" value="5.4-"/>
<config name="testVersion" value="5.3-"/>

<rule ref="PHPParallelLint"/>

Expand Down
7 changes: 6 additions & 1 deletion src/Highlighter.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ class Highlighter
T_FUNC_C => T_FUNC_C,
T_METHOD_C => T_METHOD_C,
T_NS_C => T_NS_C,
T_TRAIT_C => T_TRAIT_C,
);

/** @var array */
Expand Down Expand Up @@ -214,6 +213,12 @@ private function getTokenType($arrayToken)

// phpcs:disable PHPCompatibility.Constants.NewConstants -- The new token constants are only used when defined.

// Traits didn't exist in PHP 5.3 yet, so the trait magic constant needs special casing for PHP >= 5.4.
// __TRAIT__ will tokenize as T_STRING in PHP 5.3, so, the end result will be the same cross-version.
if (defined('T_TRAIT_C') && $arrayToken[0] === T_TRAIT_C) {
return self::TOKEN_DEFAULT;
}

// Handle PHP >= 8.0 namespaced name tokens.
// https://www.php.net/manual/en/migration80.incompatible.php#migration80.incompatible.tokenizer
if (
Expand Down

0 comments on commit 14c2988

Please sign in to comment.