Actualmente, estoy sentado en PHP5.6 y pronto actualizaré a PHP8. Usé PHPCS para verificar los problemas de compatibilidad y pude solucionarlos antes de actualizar a PHP8.
Sin embargo, encontré algunos problemas relacionados con el tipo de malabarismo en el código durante las pruebas, como:
$x = ""; $x['test'] = "xyz"; print_r($x); //Warning: Only the first byte will be assigned to the string offset in /tmp/8dw2cmkrbq0pcq/tester.php on line 4 Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /tmp/8dw2cmkrbq0pcq/tester.php:4 Stack trace: #0 {main} thrown in /tmp/8dw2cmkrbq0pcq/tester.php on line 4Este fragmento de código funcionó bien en PHP5.6.
Desafortunadamente, PHPCS no detectó el problema y ahora me pregunto si hay más problemas como este en el producto.
Ahora, quiero saber si hay una manera de detectar tales problemas antes de actualizar a PHP8. Sería muy útil si pudiera obtener una pista sobre cómo encontrar tales problemas antes de actualizar a PHP8.
Pude detectar este tipo de problemas usando https://github.com/phan/phan . Este es el problema de muestra que se detectó.
{ "type": "issue", "type_id": 10030, "check_name": "PhanTypeMismatchDimAssignment", "description": "TypeError PhanTypeMismatchDimAssignment When appending to a value of type '', found an array access index of type 'hobbies', but expected the index to be of type int", "severity": 5, "location": { "path": "PQR/models/XYZModel.php", "lines": { "begin": 171, "end": 171 } }}Gracias por su apoyo chicos.