magento-coding-standard
magento-coding-standard copied to clipboard
PHP 8.3 error mentioning php 8.1 as version
Preconditions
1.magento/product-enterprise-edition: "2.4.7-p1" 2. magento/magento-coding-standard: "33" 3. Previous coding standard version --> 31
PHP 8.3.9 (cli) (built: Jul 2 2024 14:10:14) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.9, Copyright (c) Zend Technologies
with Zend OPcache v8.3.9, Copyright (c), by Zend Technologies
FILE: ...ta/******.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
9 | ERROR | Readonly classes are not supported in PHP 8.1 or earlier.
| | (PHPCompatibility.Classes.NewReadonlyClasses.Found)
--------------------------------------------------------------------------------
Hi @MaximGns. Thank you for your report.
To speed up processing of this issue, make sure that you provided sufficient information.
Add a comment to assign the issue: @magento I am working on this
Join Magento Community Engineering Slack and ask your questions in #github channel.
This comes from the configuration for PHPCompatibility found in the ruleset for Magento2.
https://github.com/magento/magento-coding-standard/blob/v33/Magento2/ruleset.xml#L770 https://github.com/PHPCompatibility/PHPCompatibility/?tab=readme-ov-file#testversion-in-the-ruleset-versus-command-line
@fredden How to resolve this issue when using GrumPHP?
@MaximGns There are instructions on the PHPCompatibility repository for how to set testVersion via command line and/or in a custom ruleset. I've not tested with two custom rulesets both setting the value to see what comes out. You should be able to run phpcs --standard=Magento2 --runtime-set testVersion 8.3 ... to tell PHPCompatibility that you want to validate your code against PHP version 8.3 instead of the version(s) listed within the Magento2 ruleset.
@fredden thanks for explenation, but why not support 8.3 out of the box as magento itself also supports? why only php 8.1/8.2...