Repo Added
|
Files
173
|
Badge
Embed ▾
README BADGES
|
travis-ci
:sparkles: PHP 7.4: New RemovedCurlyBraceArrayAccess sniff > The array and string offset access syntax using curly braces is deprecated. > Use $str[$idx] instead of $str{$idx}. Refs: * https://wiki.php.net/rfc/deprecate_curly_braces_array_access * https://github.com/php/php-src/blob/ef165b442/UPGRADING#L351-L353 * https://github.com/php/php-src/pull/4416 * https://github.com/php/php-src/commit/d574df63d ## Implementation notes Based on a lot of testing, I have come to the conclusion that the curly braces for array access worked in quite a lot of cases, though mostly since PHP 7.0. The other sniffs which should take curly brace access into account - `NewArrayStringDereferencing`, `NewClassMemberAccess` and `NewFunctionArrayDereferencing` - have been adjusted in separate PRs. This PR can only be merged after those PRs have been merged as it re-uses logic from those sniffs. ### Other tests Based on the above mentioned tests, I also found that - yes, curly brace array access is supported on constants, but only when the first set of braces is square brackets. See: * https://3v4l.org/WIUHk * https://3v4l.org/OWSq6 * https://3v4l.org/e6YWk ## Auto-fixing In contrast to any other PHPCompatibility sniff, this sniff contains an auto-fixer. For larger codebases, this issue can be quite time-consuming to fix, while fixing this automatically is trivial. This also makes this sniff a fully fledged alternative to the [migration script](https://gist.github.com/theodorejb/763b83a43522b0fc1755a537663b1863) provided by PHP itself. **Important**: At this moment, the PHPCompatibility unit test suite does not contain a mechanism to test the fixer. A typical `.fixed` file which would be expected by the PHPCS native test suite to verify the fixer results _is_ included with this PR though. ## Tests run I have run the sniff, as well as the fixer, over a number of medium to large codebases and have foun... (continued)
228 of 228 new or added lines in 4 files covered. (100.0%)
4105 of 4347 relevant lines covered (94.43%)
33.29 hits per line
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
---|