magento-coding-standard icon indicating copy to clipboard operation
magento-coding-standard copied to clipboard

PHP 8.3 error mentioning php 8.1 as version

Open MaximGns opened this issue 1 year ago • 5 comments
trafficstars

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)
--------------------------------------------------------------------------------

MaximGns avatar Aug 05 '24 18:08 MaximGns

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.

m2-assistant[bot] avatar Aug 05 '24 18:08 m2-assistant[bot]

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 avatar Aug 05 '24 19:08 fredden

@fredden How to resolve this issue when using GrumPHP?

MaximGns avatar Aug 07 '24 12:08 MaximGns

@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 avatar Aug 07 '24 15:08 fredden

@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...

MaximGns avatar Aug 08 '24 21:08 MaximGns