├── .editorconfig ├── .gitattributes ├── .github ├── CODEOWNERS ├── PULL_REQUEST_TEMPLATE.md ├── renovate.json └── workflows │ ├── AutomateRelease.yml │ ├── PullRequestClosed.yml │ ├── PullRequestCreated.yml │ ├── RequestReview.yml │ ├── SubmitReview.yml │ ├── ToggleLockBranch.yml │ ├── build.yml │ ├── bump-versions.yaml │ ├── mark-stale-pull-requests.yml │ ├── pr-cleanup.yml │ ├── releasability-status.yaml │ ├── release.yml │ ├── shadow_scan.yml │ └── update-rule-metadata.yml ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── LICENSE.txt ├── LICENSE_HEADER ├── NOTICE.txt ├── README.md ├── SECURITY.md ├── doc ├── CFG.md └── infeasible-finally-path.png ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── its ├── README.md ├── plugin │ ├── build.gradle.kts │ ├── projects │ │ ├── big_concat │ │ │ └── test.php │ │ ├── custom_rules │ │ │ └── src │ │ │ │ └── simple.php │ │ ├── drupal_project │ │ │ └── test.php │ │ ├── empty_file │ │ │ ├── empty_file.php │ │ │ ├── empty_line.php │ │ │ └── without_php.php │ │ ├── js-project │ │ │ └── main.js │ │ ├── multimodule │ │ │ ├── module1 │ │ │ │ └── src │ │ │ │ │ ├── Foo │ │ │ │ │ └── Math5.php │ │ │ │ │ ├── Mail.php │ │ │ │ │ ├── Math.php │ │ │ │ │ └── Math3.php │ │ │ ├── module2 │ │ │ │ └── src │ │ │ │ │ ├── Bar │ │ │ │ │ └── Math4.php │ │ │ │ │ └── Math2.php │ │ │ └── sonar-project.properties │ │ ├── nosonar │ │ │ └── main.php │ │ ├── php8-features │ │ │ └── src │ │ │ │ ├── propertyHooks.php │ │ │ │ └── readonly_property_promotion.php │ │ ├── phpstan_project │ │ │ ├── phpstan-report.json │ │ │ ├── sonar-project.properties │ │ │ └── src │ │ │ │ └── test.php │ │ ├── phpunit │ │ │ ├── .gitignore │ │ │ ├── README.adoc │ │ │ ├── composer.json │ │ │ ├── phpunit.xml │ │ │ ├── reports │ │ │ │ ├── phpunit.coverage-no-record.xml │ │ │ │ ├── phpunit.coverage.unknown.xml │ │ │ │ ├── phpunit.coverage.windows.xml │ │ │ │ ├── phpunit.coverage.xml │ │ │ │ ├── phpunit.tests.div.xml │ │ │ │ ├── phpunit.tests.unknown.xml │ │ │ │ └── phpunit.tests.xml │ │ │ ├── src │ │ │ │ ├── Math.php │ │ │ │ └── Math2.php │ │ │ └── tests │ │ │ │ ├── MathDivTest.php │ │ │ │ └── MathTest.php │ │ ├── project-with-main-and-test │ │ │ └── tests │ │ │ │ ├── php.ini │ │ │ │ └── test.php │ │ ├── project-with-several-extensions │ │ │ ├── sonar-project.properties │ │ │ └── src │ │ │ │ ├── Math.php │ │ │ │ ├── Math2.myphp │ │ │ │ ├── Math3.html │ │ │ │ └── Math4.pgp │ │ ├── project-with-vendor │ │ │ ├── sonar-project.properties │ │ │ └── src │ │ │ │ ├── main.php │ │ │ │ └── vendor │ │ │ │ └── lib.php │ │ ├── psalm_project │ │ │ ├── psalm-report.json │ │ │ ├── sonar-project.properties │ │ │ └── src │ │ │ │ └── test.php │ │ ├── sonarlint │ │ │ └── Math.php │ │ └── suppress_warnings │ │ │ ├── sonar-project.properties │ │ │ └── src │ │ │ └── main.php │ └── src │ │ └── integrationTest │ │ ├── java │ │ └── com │ │ │ └── sonar │ │ │ └── it │ │ │ └── php │ │ │ ├── CpdTokenTest.java │ │ │ ├── CustomRulesTest.java │ │ │ ├── FrameworkDetectionPHPTest.java │ │ │ ├── NoSonarTest.java │ │ │ ├── NonPhpProjectTest.java │ │ │ ├── PHPIntegrationTest.java │ │ │ ├── PHPTest.java │ │ │ ├── PHPUnitTest.java │ │ │ ├── PhpStanReportTest.java │ │ │ ├── PsalmReportTest.java │ │ │ ├── SonarLintTest.java │ │ │ ├── SuppressWarningsTest.java │ │ │ ├── Tests.java │ │ │ └── utils │ │ │ ├── MockSonarLintRpcClientDelegate.java │ │ │ └── SonarLintUtils.java │ │ └── resources │ │ └── com │ │ └── sonar │ │ └── it │ │ └── php │ │ ├── drupal_profile.xml │ │ ├── no_rules.xml │ │ ├── nosonar.xml │ │ ├── profile-php-custom-rules.xml │ │ ├── profile.xml │ │ └── sleep.xml ├── ruling │ ├── build.gradle.kts │ └── src │ │ └── integrationTest │ │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ └── php │ │ │ └── it │ │ │ ├── PhpGeneralRulingTest.java │ │ │ ├── PhpPrAnalysisTest.java │ │ │ └── RulingHelper.java │ │ └── resources │ │ ├── expected │ │ ├── PHPMailer │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S104.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S107.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1125.json │ │ │ ├── php-S1131.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S117.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S1313.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1820.json │ │ │ ├── php-S1996.json │ │ │ ├── php-S1997.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2068.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2612.json │ │ │ ├── php-S2918.json │ │ │ ├── php-S2964.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S4142.json │ │ │ ├── php-S4143.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5332.json │ │ │ ├── php-S5856.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S6395.json │ │ │ ├── php-S6437.json │ │ │ ├── php-S881.json │ │ │ └── php-S930.json │ │ ├── PHPWord │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S104.json │ │ │ ├── php-S105.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S1075.json │ │ │ ├── php-S108.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1110.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1125.json │ │ │ ├── php-S1131.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1144.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S1172.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S127.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1451.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1599.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1820.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S1854.json │ │ │ ├── php-S1862.json │ │ │ ├── php-S1871.json │ │ │ ├── php-S1940.json │ │ │ ├── php-S1997.json │ │ │ ├── php-S2001.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2036.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2038.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2050.json │ │ │ ├── php-S2068.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2187.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2701.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S2918.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3360.json │ │ │ ├── php-S3415.json │ │ │ ├── php-S3626.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S3801.json │ │ │ ├── php-S4142.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5042.json │ │ │ ├── php-S5332.json │ │ │ ├── php-S5779.json │ │ │ ├── php-S5783.json │ │ │ ├── php-S5797.json │ │ │ ├── php-S5850.json │ │ │ ├── php-S5857.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S5915.json │ │ │ ├── php-S5935.json │ │ │ ├── php-S6019.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6397.json │ │ │ ├── php-S6600.json │ │ │ └── php-S881.json │ │ ├── PHP_CodeSniffer │ │ │ ├── php-S100.json │ │ │ ├── php-S101.json │ │ │ ├── php-S103.json │ │ │ ├── php-S104.json │ │ │ ├── php-S105.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S1068.json │ │ │ ├── php-S107.json │ │ │ ├── php-S108.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1109.json │ │ │ ├── php-S1110.json │ │ │ ├── php-S1116.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1124.json │ │ │ ├── php-S1125.json │ │ │ ├── php-S1126.json │ │ │ ├── php-S113.json │ │ │ ├── php-S1131.json │ │ │ ├── php-S1134.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S114.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1144.json │ │ │ ├── php-S1145.json │ │ │ ├── php-S115.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S117.json │ │ │ ├── php-S1172.json │ │ │ ├── php-S1186.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S121.json │ │ │ ├── php-S122.json │ │ │ ├── php-S1226.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S1264.json │ │ │ ├── php-S127.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S1314.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1451.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1523.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1599.json │ │ │ ├── php-S1603.json │ │ │ ├── php-S1605.json │ │ │ ├── php-S1607.json │ │ │ ├── php-S1757.json │ │ │ ├── php-S1763.json │ │ │ ├── php-S1764.json │ │ │ ├── php-S1765.json │ │ │ ├── php-S1766.json │ │ │ ├── php-S1780.json │ │ │ ├── php-S1781.json │ │ │ ├── php-S1784.json │ │ │ ├── php-S1788.json │ │ │ ├── php-S1793.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1820.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S1854.json │ │ │ ├── php-S1862.json │ │ │ ├── php-S1871.json │ │ │ ├── php-S1990.json │ │ │ ├── php-S1996.json │ │ │ ├── php-S1997.json │ │ │ ├── php-S2000.json │ │ │ ├── php-S2001.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2004.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2010.json │ │ │ ├── php-S2011.json │ │ │ ├── php-S2036.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2041.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2044.json │ │ │ ├── php-S2046.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2050.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2201.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2251.json │ │ │ ├── php-S2260.json │ │ │ ├── php-S2681.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S2918.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3626.json │ │ │ ├── php-S3699.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S3801.json │ │ │ ├── php-S3923.json │ │ │ ├── php-S3973.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5361.json │ │ │ ├── php-S5783.json │ │ │ ├── php-S5797.json │ │ │ ├── php-S5843.json │ │ │ ├── php-S5856.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S5869.json │ │ │ ├── php-S6035.json │ │ │ ├── php-S6344.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6395.json │ │ │ ├── php-S6600.json │ │ │ ├── php-S836.json │ │ │ ├── php-S881.json │ │ │ ├── php-S905.json │ │ │ ├── php-S907.json │ │ │ └── php-S930.json │ │ ├── PhpSpreadsheet │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S104.json │ │ │ ├── php-S105.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S107.json │ │ │ ├── php-S108.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1110.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1131.json │ │ │ ├── php-S1134.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S117.json │ │ │ ├── php-S1172.json │ │ │ ├── php-S1185.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S1200.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S127.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1479.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1764.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1820.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S1854.json │ │ │ ├── php-S1871.json │ │ │ ├── php-S1940.json │ │ │ ├── php-S1997.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2011.json │ │ │ ├── php-S2036.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2038.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2068.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2187.json │ │ │ ├── php-S2201.json │ │ │ ├── php-S2234.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2701.json │ │ │ ├── php-S2737.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S2918.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3360.json │ │ │ ├── php-S3415.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S3923.json │ │ │ ├── php-S4143.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4824.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5332.json │ │ │ ├── php-S5361.json │ │ │ ├── php-S5783.json │ │ │ ├── php-S5843.json │ │ │ ├── php-S5850.json │ │ │ ├── php-S5857.json │ │ │ ├── php-S5863.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S5899.json │ │ │ ├── php-S5915.json │ │ │ ├── php-S6035.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6395.json │ │ │ ├── php-S6396.json │ │ │ ├── php-S6397.json │ │ │ └── php-S881.json │ │ ├── RubixML │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S107.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S1200.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1607.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S1854.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2010.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2050.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S2918.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S5785.json │ │ │ ├── php-S6353.json │ │ │ └── php-S881.json │ │ ├── flysystem │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S107.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1116.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1134.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S126.json │ │ │ ├── php-S134.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1451.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2036.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2699.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S2964.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3415.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5332.json │ │ │ ├── php-S5783.json │ │ │ ├── php-S5785.json │ │ │ ├── php-S5850.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S5911.json │ │ │ ├── php-S5915.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6600.json │ │ │ └── php-S907.json │ │ ├── monica │ │ │ ├── php-S100.json │ │ │ ├── php-S103.json │ │ │ ├── php-S105.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1125.json │ │ │ ├── php-S113.json │ │ │ ├── php-S1131.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S1172.json │ │ │ ├── php-S126.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S1313.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1451.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1788.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S2000.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2010.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2038.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2068.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S3801.json │ │ │ ├── php-S4502.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5122.json │ │ │ ├── php-S5332.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S5869.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6395.json │ │ │ └── php-S6397.json │ │ └── psysh │ │ │ ├── php-S100.json │ │ │ ├── php-S101.json │ │ │ ├── php-S103.json │ │ │ ├── php-S1066.json │ │ │ ├── php-S1067.json │ │ │ ├── php-S1068.json │ │ │ ├── php-S108.json │ │ │ ├── php-S1105.json │ │ │ ├── php-S1106.json │ │ │ ├── php-S1117.json │ │ │ ├── php-S112.json │ │ │ ├── php-S1121.json │ │ │ ├── php-S1135.json │ │ │ ├── php-S1142.json │ │ │ ├── php-S1144.json │ │ │ ├── php-S1151.json │ │ │ ├── php-S1155.json │ │ │ ├── php-S116.json │ │ │ ├── php-S1172.json │ │ │ ├── php-S1186.json │ │ │ ├── php-S1192.json │ │ │ ├── php-S1200.json │ │ │ ├── php-S1226.json │ │ │ ├── php-S125.json │ │ │ ├── php-S126.json │ │ │ ├── php-S1301.json │ │ │ ├── php-S131.json │ │ │ ├── php-S1311.json │ │ │ ├── php-S1313.json │ │ │ ├── php-S1314.json │ │ │ ├── php-S134.json │ │ │ ├── php-S138.json │ │ │ ├── php-S139.json │ │ │ ├── php-S1448.json │ │ │ ├── php-S1481.json │ │ │ ├── php-S1488.json │ │ │ ├── php-S1523.json │ │ │ ├── php-S1541.json │ │ │ ├── php-S1578.json │ │ │ ├── php-S1607.json │ │ │ ├── php-S1799.json │ │ │ ├── php-S1808.json │ │ │ ├── php-S1820.json │ │ │ ├── php-S1821.json │ │ │ ├── php-S1848.json │ │ │ ├── php-S1854.json │ │ │ ├── php-S1996.json │ │ │ ├── php-S2002.json │ │ │ ├── php-S2003.json │ │ │ ├── php-S2005.json │ │ │ ├── php-S2007.json │ │ │ ├── php-S2011.json │ │ │ ├── php-S2036.json │ │ │ ├── php-S2037.json │ │ │ ├── php-S2042.json │ │ │ ├── php-S2043.json │ │ │ ├── php-S2047.json │ │ │ ├── php-S2070.json │ │ │ ├── php-S2187.json │ │ │ ├── php-S2245.json │ │ │ ├── php-S2830.json │ │ │ ├── php-S3011.json │ │ │ ├── php-S3358.json │ │ │ ├── php-S3360.json │ │ │ ├── php-S3415.json │ │ │ ├── php-S3626.json │ │ │ ├── php-S3699.json │ │ │ ├── php-S3776.json │ │ │ ├── php-S3801.json │ │ │ ├── php-S4142.json │ │ │ ├── php-S4144.json │ │ │ ├── php-S4790.json │ │ │ ├── php-S4824.json │ │ │ ├── php-S4828.json │ │ │ ├── php-S4833.json │ │ │ ├── php-S5850.json │ │ │ ├── php-S5867.json │ │ │ ├── php-S6019.json │ │ │ ├── php-S6353.json │ │ │ ├── php-S6395.json │ │ │ └── php-S881.json │ │ └── expected_pr_analysis │ │ ├── added │ │ └── php-S1172.json │ │ ├── base │ │ └── php-S1172.json │ │ └── changed │ │ ├── php-S1172.json │ │ └── php-S1808.json └── sources_pr_analysis │ ├── added │ ├── AbstractController.php │ ├── Budget.php │ └── Price.php │ ├── base │ ├── AbstractController.php │ └── Budget.php │ ├── changed │ ├── AbstractController.php │ └── Budget.php │ └── deleted │ └── Budget.php ├── mise.toml ├── php-checks ├── build.gradle.kts └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ └── php │ │ │ └── checks │ │ │ ├── AliasFunctionUsageCheck.java │ │ │ ├── AllBranchesIdenticalCheck.java │ │ │ ├── AlwaysUseCurlyBracesCheck.java │ │ │ ├── ArgumentWithDefaultValueNotLastCheck.java │ │ │ ├── ArrayCountableCountCheck.java │ │ │ ├── AssignmentInSubExpressionCheck.java │ │ │ ├── AtLeastThreeCasesInSwitchCheck.java │ │ │ ├── AvoidDESCheck.java │ │ │ ├── BooleanEqualityComparisonCheck.java │ │ │ ├── CakePhpDebugModeCheckPart.java │ │ │ ├── CallParentConstructorCheck.java │ │ │ ├── CallToIniSetCheck.java │ │ │ ├── CatchRethrowingCheck.java │ │ │ ├── CatchThrowableCheck.java │ │ │ ├── CharacterBeforeOpeningPHPTagCheck.java │ │ │ ├── CheckBundle.java │ │ │ ├── CheckBundlePart.java │ │ │ ├── CheckList.java │ │ │ ├── ChildAndParentExceptionCaughtCheck.java │ │ │ ├── ClassComplexityCheck.java │ │ │ ├── ClassCouplingCheck.java │ │ │ ├── ClassNameCheck.java │ │ │ ├── ClassNamedLikeExceptionCheck.java │ │ │ ├── ClearTextProtocolsCheck.java │ │ │ ├── ClosingTagInFullPHPFileCheck.java │ │ │ ├── CodeFollowingJumpStatementCheck.java │ │ │ ├── CollapsibleIfStatementCheck.java │ │ │ ├── CommentedOutCodeCheck.java │ │ │ ├── ConcatenatedStringLiteralCheck.java │ │ │ ├── ConditionalIndentationCheck.java │ │ │ ├── ConditionalOnNewLineCheck.java │ │ │ ├── ConsistentFunctionReturnCheck.java │ │ │ ├── ConstantConditionCheck.java │ │ │ ├── ConstantNameCheck.java │ │ │ ├── ConstructWithParenthesesCheck.java │ │ │ ├── ConstructorDeclarationCheck.java │ │ │ ├── ConstructorDependencyInversionCheck.java │ │ │ ├── CookiesSecureCheck.java │ │ │ ├── CountInsteadOfEmptyCheck.java │ │ │ ├── CryptographicKeySizeCheck.java │ │ │ ├── DeadStoreCheck.java │ │ │ ├── DebugModeCheck.java │ │ │ ├── DeprecatedPredefinedVariablesUseCheck.java │ │ │ ├── DirectlyAccessingSuperGlobalCheck.java │ │ │ ├── DuplicateBranchImplementationCheck.java │ │ │ ├── DuplicateConditionCheck.java │ │ │ ├── DuplicatedArgumentCheck.java │ │ │ ├── DuplicatedMethodCheck.java │ │ │ ├── EchoWithParenthesisCheck.java │ │ │ ├── ElseIfSequenceKeywordUsageCheck.java │ │ │ ├── ElseIfWithoutElseCheck.java │ │ │ ├── EmptyDatabasePasswordCheck.java │ │ │ ├── EmptyMethodCheck.java │ │ │ ├── EmptyNestedBlockCheck.java │ │ │ ├── EmptyStatementCheck.java │ │ │ ├── EncryptionModeAndPaddingCheck.java │ │ │ ├── EvalUseCheck.java │ │ │ ├── ExitOrDieUsageCheck.java │ │ │ ├── ExpressionComplexityCheck.java │ │ │ ├── FieldNameCheck.java │ │ │ ├── FileHeaderCheck.java │ │ │ ├── FileNameCheck.java │ │ │ ├── FileWithSymbolsAndSideEffectsCheck.java │ │ │ ├── FixmeTagPresenceCheck.java │ │ │ ├── ForHidingWhileCheck.java │ │ │ ├── ForLoopCounterChangedCheck.java │ │ │ ├── ForLoopIncrementSignCheck.java │ │ │ ├── FormattingStandardCheck.java │ │ │ ├── FunctionCallArgumentsNumberCheck.java │ │ │ ├── FunctionCognitiveComplexityCheck.java │ │ │ ├── FunctionComplexityCheck.java │ │ │ ├── FunctionDefineOutsideClassCheck.java │ │ │ ├── FunctionNameCheck.java │ │ │ ├── GenericExceptionCheck.java │ │ │ ├── GlobalKeywordAndArrayUsageCheck.java │ │ │ ├── GotoUseCheck.java │ │ │ ├── HardCodedCredentialsInFunctionCallsCheck.java │ │ │ ├── HardCodedCredentialsInVariablesAndUrisCheck.java │ │ │ ├── HardCodedIpAddressCheck.java │ │ │ ├── HardCodedSecretCheck.java │ │ │ ├── HardCodedUriCheck.java │ │ │ ├── HashFunctionCheck.java │ │ │ ├── HttpOnlyCheck.java │ │ │ ├── IdenticalOperandsInBinaryExpressionCheck.java │ │ │ ├── IfConditionAlwaysTrueOrFalseCheck.java │ │ │ ├── IgnoredReturnValueCheck.java │ │ │ ├── ImmediatelyReturnedVariableCheck.java │ │ │ ├── IncrementDecrementInSubExpressionCheck.java │ │ │ ├── InheritanceDepthCheck.java │ │ │ ├── InlineHTMLInFileCheck.java │ │ │ ├── InsecureHashCheck.java │ │ │ ├── InterfaceNameCheck.java │ │ │ ├── InvertedBooleanCheck.java │ │ │ ├── KeywordsAndConstantsNotLowerCaseCheck.java │ │ │ ├── LeftCurlyBraceEndsLineCheck.java │ │ │ ├── LeftCurlyBraceStartsLineCheck.java │ │ │ ├── LineLengthCheck.java │ │ │ ├── LocalVariableAndParameterNameCheck.java │ │ │ ├── LocalVariableShadowsClassFieldCheck.java │ │ │ ├── LogicalWordOperatorUsageCheck.java │ │ │ ├── LoopExecutingAtMostOnceCheck.java │ │ │ ├── LowerCaseColorCheck.java │ │ │ ├── MethodNameReturningBooleanCheck.java │ │ │ ├── MissingMethodVisibilityCheck.java │ │ │ ├── MissingNewLineAtEOFCheck.java │ │ │ ├── ModifiersOrderCheck.java │ │ │ ├── MoreThanOneClassInFileCheck.java │ │ │ ├── MultilineBlocksCurlyBracesCheck.java │ │ │ ├── NestedControlFlowDepthCheck.java │ │ │ ├── NestedFunctionDepthCheck.java │ │ │ ├── NestedSwitchCheck.java │ │ │ ├── NestedTernaryOperatorsCheck.java │ │ │ ├── NoPaddingRsaCheck.java │ │ │ ├── NoSonarCheck.java │ │ │ ├── NonEmptyCaseWithoutBreakCheck.java │ │ │ ├── NonLFCharAsEOLCheck.java │ │ │ ├── NullDereferenceInConditionalCheck.java │ │ │ ├── OnePropertyDeclarationPerStatementCheck.java │ │ │ ├── OneStatementPerLineCheck.java │ │ │ ├── OpeningPHPTagCheck.java │ │ │ ├── OverridingMethodSimplyCallParentCheck.java │ │ │ ├── OverwrittenArrayElementCheck.java │ │ │ ├── PHPDeprecatedFunctionUsageCheck.java │ │ │ ├── ParameterSequenceCheck.java │ │ │ ├── ParsingErrorCheck.java │ │ │ ├── PerlStyleCommentsUsageCheck.java │ │ │ ├── PhpSapiNameFunctionUsageCheck.java │ │ │ ├── RandomGeneratorCheck.java │ │ │ ├── ReassignedBeforeUsedCheck.java │ │ │ ├── RedefineConstantCheck.java │ │ │ ├── RedundantFinalCheck.java │ │ │ ├── RedundantJumpCheck.java │ │ │ ├── RedundantParenthesesCheck.java │ │ │ ├── ReferenceInFunctionCallCheck.java │ │ │ ├── RepeatedComplementOperatorCheck.java │ │ │ ├── RequireIncludeInstructionsUsageCheck.java │ │ │ ├── RequireInsteadOfRequireOnceCheck.java │ │ │ ├── ReturnOfBooleanExpressionCheck.java │ │ │ ├── RightCurlyBraceStartsLineCheck.java │ │ │ ├── SSLCertificatesVerificationDisabledCheck.java │ │ │ ├── SSLHostVerificationDisabledCheck.java │ │ │ ├── SelfAssignmentCheck.java │ │ │ ├── SelfKeywordUsageCheck.java │ │ │ ├── SessionCookiePersistenceCheck.java │ │ │ ├── SilencedErrorsCheck.java │ │ │ ├── SleepFunctionUsageCheck.java │ │ │ ├── StringLiteralDuplicatedCheck.java │ │ │ ├── SwitchCaseTooBigCheck.java │ │ │ ├── SwitchDefaultPositionCheck.java │ │ │ ├── SwitchWithoutDefaultCheck.java │ │ │ ├── TabCharacterCheck.java │ │ │ ├── ThisVariableUsageInStaticContextCheck.java │ │ │ ├── ThrowThrowableCheck.java │ │ │ ├── TodoTagPresenceCheck.java │ │ │ ├── TooManyCasesInSwitchCheck.java │ │ │ ├── TooManyFieldsInClassCheck.java │ │ │ ├── TooManyFunctionParametersCheck.java │ │ │ ├── TooManyLinesInClassCheck.java │ │ │ ├── TooManyLinesInFileCheck.java │ │ │ ├── TooManyLinesInFunctionCheck.java │ │ │ ├── TooManyMethodsInClassCheck.java │ │ │ ├── TooManyReturnCheck.java │ │ │ ├── TrailingCommentCheck.java │ │ │ ├── TrailingWhitespaceCheck.java │ │ │ ├── UncatchableExceptionCheck.java │ │ │ ├── UnreachableCatchBlockCheck.java │ │ │ ├── UnsetForeachReferenceVariableCheck.java │ │ │ ├── UnusedExceptionCheck.java │ │ │ ├── UnusedFunctionParametersCheck.java │ │ │ ├── UnusedLocalVariableCheck.java │ │ │ ├── UnusedPrivateFieldCheck.java │ │ │ ├── UnusedPrivateMethodCheck.java │ │ │ ├── UseOfEmptyReturnValueCheck.java │ │ │ ├── UseOfOctalValueCheck.java │ │ │ ├── UseOfUninitializedVariableCheck.java │ │ │ ├── UselessExpressionStatementCheck.java │ │ │ ├── UselessIncrementCheck.java │ │ │ ├── UselessObjectCreationCheck.java │ │ │ ├── VarKeywordUsageCheck.java │ │ │ ├── VariableVariablesCheck.java │ │ │ ├── WeakSSLProtocolCheck.java │ │ │ ├── WrongAssignmentOperatorCheck.java │ │ │ ├── ZipEntryCheck.java │ │ │ ├── formatting │ │ │ ├── ControlStructureSpacingCheck.java │ │ │ ├── CurlyBraceCheck.java │ │ │ ├── ExtendsImplementsLineCheck.java │ │ │ ├── FormattingCheck.java │ │ │ ├── FunctionSpacingCheck.java │ │ │ ├── IndentationCheck.java │ │ │ ├── NamespaceAndUseStatementCheck.java │ │ │ ├── PunctuatorSpacingCheck.java │ │ │ ├── TokenUtils.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── phpini │ │ │ ├── AllowUrlCheck.java │ │ │ ├── CgiForceRedirectCheck.java │ │ │ ├── EnableDlCheck.java │ │ │ ├── FileUploadsCheck.java │ │ │ ├── OpenBasedirCheck.java │ │ │ ├── PhpIniBoolean.java │ │ │ ├── PhpIniFiles.java │ │ │ ├── SessionUseTransSidCheck.java │ │ │ └── package-info.java │ │ │ ├── phpunit │ │ │ ├── AbortedTestCaseCheck.java │ │ │ ├── AssertTrueInsteadOfDedicatedAssertCheck.java │ │ │ ├── AssertionArgumentOrderCheck.java │ │ │ ├── AssertionCompareToSelfCheck.java │ │ │ ├── AssertionInTryCatchCheck.java │ │ │ ├── AssertionsAfterExceptionCheck.java │ │ │ ├── BooleanOrNullLiteralInAssertionsCheck.java │ │ │ ├── ExceptionTestingCheck.java │ │ │ ├── NoAssertionInTestCheck.java │ │ │ ├── NoTestInTestClassCheck.java │ │ │ ├── NotDiscoverableTestCheck.java │ │ │ ├── OneExpectedCheckExceptionCheck.java │ │ │ ├── TestClassNameCheck.java │ │ │ └── package-info.java │ │ │ ├── regex │ │ │ ├── AbstractRegexCheck.java │ │ │ ├── AnchorPrecedenceCheck.java │ │ │ ├── DuplicatesInCharacterClassCheck.java │ │ │ ├── EmptyAlternativeCheck.java │ │ │ ├── EmptyGroupCheck.java │ │ │ ├── EmptyStringRepetitionCheck.java │ │ │ ├── GraphemeClustersInClassesCheck.java │ │ │ ├── GroupReplacementCheck.java │ │ │ ├── ImpossibleBackReferenceCheck.java │ │ │ ├── ImpossibleBoundariesCheck.java │ │ │ ├── InvalidDelimiterCheck.java │ │ │ ├── InvalidRegexCheck.java │ │ │ ├── MultipleWhitespaceCheck.java │ │ │ ├── PossessiveQuantifierContinuationCheck.java │ │ │ ├── RedundantRegexAlternativesCheck.java │ │ │ ├── RegexComplexityCheck.java │ │ │ ├── RegexLookaheadCheck.java │ │ │ ├── ReluctantQuantifierCheck.java │ │ │ ├── ReluctantQuantifierWithEmptyContinuationCheck.java │ │ │ ├── SingleCharCharacterClassCheck.java │ │ │ ├── SingleCharacterAlternationCheck.java │ │ │ ├── StringReplaceCheck.java │ │ │ ├── SuperfluousCurlyBraceCheck.java │ │ │ ├── UnicodeAwareCharClassesCheck.java │ │ │ ├── UnquantifiedNonCapturingGroupCheck.java │ │ │ ├── VerboseRegexCheck.java │ │ │ └── package-info.java │ │ │ ├── security │ │ │ ├── AuthorizationsCheck.java │ │ │ ├── CORSPolicyCheck.java │ │ │ ├── ChangingAccessibilityCheck.java │ │ │ ├── ClearTextProtocolsCheckPart.java │ │ │ ├── CryptographicHashCheck.java │ │ │ ├── DisableCsrfCheck.java │ │ │ ├── LDAPAuthenticatedConnectionCheck.java │ │ │ ├── POSIXFilePermissionsCheck.java │ │ │ ├── QueryUsageCheck.java │ │ │ ├── RequestContentLengthCheck.java │ │ │ ├── RobustCipherAlgorithmCheck.java │ │ │ ├── SessionFixationCheck.java │ │ │ ├── SessionFixationStrategyCheck.java │ │ │ ├── SignallingProcessCheck.java │ │ │ ├── XxeCheck.java │ │ │ └── package-info.java │ │ │ ├── utils │ │ │ ├── AbstractCommentContainsPatternCheck.java │ │ │ ├── AbstractDuplicateBranchCheck.java │ │ │ ├── AbstractDuplicateBranchImplementationCheck.java │ │ │ ├── AbstractStatementsCheck.java │ │ │ ├── CheckUtils.java │ │ │ ├── FunctionUsageCheck.java │ │ │ ├── PhpUnitCheck.java │ │ │ ├── ReadWriteUsages.java │ │ │ ├── RegexUtils.java │ │ │ ├── SyntacticEquivalence.java │ │ │ ├── TokenVisitor.java │ │ │ ├── argumentmatching │ │ │ │ ├── ArgumentMatcher.java │ │ │ │ ├── ArgumentMatcherValueContainment.java │ │ │ │ ├── ArgumentVerifierUnaryFunction.java │ │ │ │ ├── ArgumentVerifierValueContainment.java │ │ │ │ ├── FunctionArgumentCheck.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── type │ │ │ │ ├── ArrayAccess.java │ │ │ │ ├── FunctionCall.java │ │ │ │ ├── NewObjectCall.java │ │ │ │ ├── ObjectMemberFunctionCall.java │ │ │ │ ├── StaticFunctionCall.java │ │ │ │ ├── TreeKindPredicate.java │ │ │ │ ├── TreeValues.java │ │ │ │ ├── TypePredicateList.java │ │ │ │ └── package-info.java │ │ │ └── wordpress │ │ │ ├── WordPressAutoUpdateCheck.java │ │ │ ├── WordPressConfigNameCheck.java │ │ │ ├── WordPressConfigVisitor.java │ │ │ ├── WordPressDbRepairCheck.java │ │ │ ├── WordPressDebugModeCheckPart.java │ │ │ ├── WordPressExternalRequestsCheck.java │ │ │ ├── WordPressFileEditorCheck.java │ │ │ ├── WordPressForceSslCheckPart.java │ │ │ ├── WordPressLateConfigCheck.java │ │ │ ├── WordPressSaltsCheck.java │ │ │ ├── WordPressUnfilteredHtmlCheck.java │ │ │ └── package-info.java │ └── resources │ │ └── org │ │ └── sonar │ │ ├── l10n │ │ ├── php.properties │ │ └── php │ │ │ └── rules │ │ │ └── php │ │ │ ├── NoSonar.html │ │ │ ├── NoSonar.json │ │ │ ├── S100.html │ │ │ ├── S100.json │ │ │ ├── S101.html │ │ │ ├── S101.json │ │ │ ├── S103.html │ │ │ ├── S103.json │ │ │ ├── S104.html │ │ │ ├── S104.json │ │ │ ├── S1045.html │ │ │ ├── S1045.json │ │ │ ├── S105.html │ │ │ ├── S105.json │ │ │ ├── S1066.html │ │ │ ├── S1066.json │ │ │ ├── S1067.html │ │ │ ├── S1067.json │ │ │ ├── S1068.html │ │ │ ├── S1068.json │ │ │ ├── S107.html │ │ │ ├── S107.json │ │ │ ├── S1075.html │ │ │ ├── S1075.json │ │ │ ├── S108.html │ │ │ ├── S108.json │ │ │ ├── S110.html │ │ │ ├── S110.json │ │ │ ├── S1105.html │ │ │ ├── S1105.json │ │ │ ├── S1106.html │ │ │ ├── S1106.json │ │ │ ├── S1109.html │ │ │ ├── S1109.json │ │ │ ├── S1110.html │ │ │ ├── S1110.json │ │ │ ├── S1116.html │ │ │ ├── S1116.json │ │ │ ├── S1117.html │ │ │ ├── S1117.json │ │ │ ├── S112.html │ │ │ ├── S112.json │ │ │ ├── S1121.html │ │ │ ├── S1121.json │ │ │ ├── S1124.html │ │ │ ├── S1124.json │ │ │ ├── S1125.html │ │ │ ├── S1125.json │ │ │ ├── S1126.html │ │ │ ├── S1126.json │ │ │ ├── S113.html │ │ │ ├── S113.json │ │ │ ├── S1131.html │ │ │ ├── S1131.json │ │ │ ├── S1134.html │ │ │ ├── S1134.json │ │ │ ├── S1135.html │ │ │ ├── S1135.json │ │ │ ├── S114.html │ │ │ ├── S114.json │ │ │ ├── S1142.html │ │ │ ├── S1142.json │ │ │ ├── S1144.html │ │ │ ├── S1144.json │ │ │ ├── S1145.html │ │ │ ├── S1145.json │ │ │ ├── S115.html │ │ │ ├── S115.json │ │ │ ├── S1151.html │ │ │ ├── S1151.json │ │ │ ├── S1155.html │ │ │ ├── S1155.json │ │ │ ├── S116.html │ │ │ ├── S116.json │ │ │ ├── S117.html │ │ │ ├── S117.json │ │ │ ├── S1172.html │ │ │ ├── S1172.json │ │ │ ├── S1185.html │ │ │ ├── S1185.json │ │ │ ├── S1186.html │ │ │ ├── S1186.json │ │ │ ├── S1192.html │ │ │ ├── S1192.json │ │ │ ├── S1200.html │ │ │ ├── S1200.json │ │ │ ├── S121.html │ │ │ ├── S121.json │ │ │ ├── S122.html │ │ │ ├── S122.json │ │ │ ├── S1226.html │ │ │ ├── S1226.json │ │ │ ├── S125.html │ │ │ ├── S125.json │ │ │ ├── S126.html │ │ │ ├── S126.json │ │ │ ├── S1264.html │ │ │ ├── S1264.json │ │ │ ├── S127.html │ │ │ ├── S127.json │ │ │ ├── S128.html │ │ │ ├── S128.json │ │ │ ├── S1301.html │ │ │ ├── S1301.json │ │ │ ├── S131.html │ │ │ ├── S131.json │ │ │ ├── S1311.html │ │ │ ├── S1311.json │ │ │ ├── S1313.html │ │ │ ├── S1313.json │ │ │ ├── S1314.html │ │ │ ├── S1314.json │ │ │ ├── S134.html │ │ │ ├── S134.json │ │ │ ├── S138.html │ │ │ ├── S138.json │ │ │ ├── S139.html │ │ │ ├── S139.json │ │ │ ├── S1448.html │ │ │ ├── S1448.json │ │ │ ├── S1451.html │ │ │ ├── S1451.json │ │ │ ├── S1479.html │ │ │ ├── S1479.json │ │ │ ├── S1481.html │ │ │ ├── S1481.json │ │ │ ├── S1488.html │ │ │ ├── S1488.json │ │ │ ├── S1523.html │ │ │ ├── S1523.json │ │ │ ├── S1541.html │ │ │ ├── S1541.json │ │ │ ├── S1578.html │ │ │ ├── S1578.json │ │ │ ├── S1599.html │ │ │ ├── S1599.json │ │ │ ├── S1600.html │ │ │ ├── S1600.json │ │ │ ├── S1603.html │ │ │ ├── S1603.json │ │ │ ├── S1605.html │ │ │ ├── S1605.json │ │ │ ├── S1607.html │ │ │ ├── S1607.json │ │ │ ├── S1656.html │ │ │ ├── S1656.json │ │ │ ├── S1697.html │ │ │ ├── S1697.json │ │ │ ├── S1751.html │ │ │ ├── S1751.json │ │ │ ├── S1757.html │ │ │ ├── S1757.json │ │ │ ├── S1763.html │ │ │ ├── S1763.json │ │ │ ├── S1764.html │ │ │ ├── S1764.json │ │ │ ├── S1765.html │ │ │ ├── S1765.json │ │ │ ├── S1766.html │ │ │ ├── S1766.json │ │ │ ├── S1779.html │ │ │ ├── S1779.json │ │ │ ├── S1780.html │ │ │ ├── S1780.json │ │ │ ├── S1781.html │ │ │ ├── S1781.json │ │ │ ├── S1784.html │ │ │ ├── S1784.json │ │ │ ├── S1788.html │ │ │ ├── S1788.json │ │ │ ├── S1793.html │ │ │ ├── S1793.json │ │ │ ├── S1799.html │ │ │ ├── S1799.json │ │ │ ├── S1808.html │ │ │ ├── S1808.json │ │ │ ├── S1820.html │ │ │ ├── S1820.json │ │ │ ├── S1821.html │ │ │ ├── S1821.json │ │ │ ├── S1848.html │ │ │ ├── S1848.json │ │ │ ├── S1854.html │ │ │ ├── S1854.json │ │ │ ├── S1862.html │ │ │ ├── S1862.json │ │ │ ├── S1871.html │ │ │ ├── S1871.json │ │ │ ├── S1940.html │ │ │ ├── S1940.json │ │ │ ├── S1990.html │ │ │ ├── S1990.json │ │ │ ├── S1996.html │ │ │ ├── S1996.json │ │ │ ├── S1997.html │ │ │ ├── S1997.json │ │ │ ├── S1998.html │ │ │ ├── S1998.json │ │ │ ├── S2000.html │ │ │ ├── S2000.json │ │ │ ├── S2001.html │ │ │ ├── S2001.json │ │ │ ├── S2002.html │ │ │ ├── S2002.json │ │ │ ├── S2003.html │ │ │ ├── S2003.json │ │ │ ├── S2004.html │ │ │ ├── S2004.json │ │ │ ├── S2005.html │ │ │ ├── S2005.json │ │ │ ├── S2007.html │ │ │ ├── S2007.json │ │ │ ├── S2010.html │ │ │ ├── S2010.json │ │ │ ├── S2011.html │ │ │ ├── S2011.json │ │ │ ├── S2014.html │ │ │ ├── S2014.json │ │ │ ├── S2036.html │ │ │ ├── S2036.json │ │ │ ├── S2037.html │ │ │ ├── S2037.json │ │ │ ├── S2038.html │ │ │ ├── S2038.json │ │ │ ├── S2041.html │ │ │ ├── S2041.json │ │ │ ├── S2042.html │ │ │ ├── S2042.json │ │ │ ├── S2043.html │ │ │ ├── S2043.json │ │ │ ├── S2044.html │ │ │ ├── S2044.json │ │ │ ├── S2046.html │ │ │ ├── S2046.json │ │ │ ├── S2047.html │ │ │ ├── S2047.json │ │ │ ├── S2050.html │ │ │ ├── S2050.json │ │ │ ├── S2053.html │ │ │ ├── S2053.json │ │ │ ├── S2068.html │ │ │ ├── S2068.json │ │ │ ├── S2070.html │ │ │ ├── S2070.json │ │ │ ├── S2077.html │ │ │ ├── S2077.json │ │ │ ├── S2092.html │ │ │ ├── S2092.json │ │ │ ├── S2115.html │ │ │ ├── S2115.json │ │ │ ├── S2123.html │ │ │ ├── S2123.json │ │ │ ├── S2166.html │ │ │ ├── S2166.json │ │ │ ├── S2187.html │ │ │ ├── S2187.json │ │ │ ├── S2201.html │ │ │ ├── S2201.json │ │ │ ├── S2234.html │ │ │ ├── S2234.json │ │ │ ├── S2245.html │ │ │ ├── S2245.json │ │ │ ├── S2251.html │ │ │ ├── S2251.json │ │ │ ├── S2260.html │ │ │ ├── S2260.json │ │ │ ├── S2277.html │ │ │ ├── S2277.json │ │ │ ├── S2278.html │ │ │ ├── S2278.json │ │ │ ├── S2612.html │ │ │ ├── S2612.json │ │ │ ├── S2681.html │ │ │ ├── S2681.json │ │ │ ├── S2699.html │ │ │ ├── S2699.json │ │ │ ├── S2701.html │ │ │ ├── S2701.json │ │ │ ├── S2737.html │ │ │ ├── S2737.json │ │ │ ├── S2755.html │ │ │ ├── S2755.json │ │ │ ├── S2757.html │ │ │ ├── S2757.json │ │ │ ├── S2761.html │ │ │ ├── S2761.json │ │ │ ├── S2830.html │ │ │ ├── S2830.json │ │ │ ├── S2918.html │ │ │ ├── S2918.json │ │ │ ├── S2964.html │ │ │ ├── S2964.json │ │ │ ├── S3011.html │ │ │ ├── S3011.json │ │ │ ├── S3330.html │ │ │ ├── S3330.json │ │ │ ├── S3332.html │ │ │ ├── S3332.json │ │ │ ├── S3333.html │ │ │ ├── S3333.json │ │ │ ├── S3334.html │ │ │ ├── S3334.json │ │ │ ├── S3335.html │ │ │ ├── S3335.json │ │ │ ├── S3336.html │ │ │ ├── S3336.json │ │ │ ├── S3337.html │ │ │ ├── S3337.json │ │ │ ├── S3338.html │ │ │ ├── S3338.json │ │ │ ├── S3358.html │ │ │ ├── S3358.json │ │ │ ├── S3360.html │ │ │ ├── S3360.json │ │ │ ├── S3415.html │ │ │ ├── S3415.json │ │ │ ├── S3626.html │ │ │ ├── S3626.json │ │ │ ├── S3699.html │ │ │ ├── S3699.json │ │ │ ├── S3776.html │ │ │ ├── S3776.json │ │ │ ├── S3801.html │ │ │ ├── S3801.json │ │ │ ├── S3923.html │ │ │ ├── S3923.json │ │ │ ├── S3972.html │ │ │ ├── S3972.json │ │ │ ├── S3973.html │ │ │ ├── S3973.json │ │ │ ├── S3981.html │ │ │ ├── S3981.json │ │ │ ├── S3984.html │ │ │ ├── S3984.json │ │ │ ├── S4142.html │ │ │ ├── S4142.json │ │ │ ├── S4143.html │ │ │ ├── S4143.json │ │ │ ├── S4144.html │ │ │ ├── S4144.json │ │ │ ├── S4423.html │ │ │ ├── S4423.json │ │ │ ├── S4426.html │ │ │ ├── S4426.json │ │ │ ├── S4433.html │ │ │ ├── S4433.json │ │ │ ├── S4502.html │ │ │ ├── S4502.json │ │ │ ├── S4507.html │ │ │ ├── S4507.json │ │ │ ├── S4524.html │ │ │ ├── S4524.json │ │ │ ├── S4790.html │ │ │ ├── S4790.json │ │ │ ├── S4824.html │ │ │ ├── S4824.json │ │ │ ├── S4828.html │ │ │ ├── S4828.json │ │ │ ├── S4830.html │ │ │ ├── S4830.json │ │ │ ├── S4833.html │ │ │ ├── S4833.json │ │ │ ├── S5042.html │ │ │ ├── S5042.json │ │ │ ├── S5122.html │ │ │ ├── S5122.json │ │ │ ├── S5328.html │ │ │ ├── S5328.json │ │ │ ├── S5332.html │ │ │ ├── S5332.json │ │ │ ├── S5361.html │ │ │ ├── S5361.json │ │ │ ├── S5527.html │ │ │ ├── S5527.json │ │ │ ├── S5542.html │ │ │ ├── S5542.json │ │ │ ├── S5547.html │ │ │ ├── S5547.json │ │ │ ├── S5632.html │ │ │ ├── S5632.json │ │ │ ├── S5693.html │ │ │ ├── S5693.json │ │ │ ├── S5708.html │ │ │ ├── S5708.json │ │ │ ├── S5713.html │ │ │ ├── S5713.json │ │ │ ├── S5779.html │ │ │ ├── S5779.json │ │ │ ├── S5783.html │ │ │ ├── S5783.json │ │ │ ├── S5785.html │ │ │ ├── S5785.json │ │ │ ├── S5797.html │ │ │ ├── S5797.json │ │ │ ├── S5808.html │ │ │ ├── S5808.json │ │ │ ├── S5842.html │ │ │ ├── S5842.json │ │ │ ├── S5843.html │ │ │ ├── S5843.json │ │ │ ├── S5850.html │ │ │ ├── S5850.json │ │ │ ├── S5855.html │ │ │ ├── S5855.json │ │ │ ├── S5856.html │ │ │ ├── S5856.json │ │ │ ├── S5857.html │ │ │ ├── S5857.json │ │ │ ├── S5863.html │ │ │ ├── S5863.json │ │ │ ├── S5867.html │ │ │ ├── S5867.json │ │ │ ├── S5868.html │ │ │ ├── S5868.json │ │ │ ├── S5869.html │ │ │ ├── S5869.json │ │ │ ├── S5876.html │ │ │ ├── S5876.json │ │ │ ├── S5899.html │ │ │ ├── S5899.json │ │ │ ├── S5911.html │ │ │ ├── S5911.json │ │ │ ├── S5915.html │ │ │ ├── S5915.json │ │ │ ├── S5935.html │ │ │ ├── S5935.json │ │ │ ├── S5994.html │ │ │ ├── S5994.json │ │ │ ├── S5996.html │ │ │ ├── S5996.json │ │ │ ├── S6001.html │ │ │ ├── S6001.json │ │ │ ├── S6002.html │ │ │ ├── S6002.json │ │ │ ├── S6019.html │ │ │ ├── S6019.json │ │ │ ├── S6035.html │ │ │ ├── S6035.json │ │ │ ├── S6323.html │ │ │ ├── S6323.json │ │ │ ├── S6326.html │ │ │ ├── S6326.json │ │ │ ├── S6328.html │ │ │ ├── S6328.json │ │ │ ├── S6331.html │ │ │ ├── S6331.json │ │ │ ├── S6339.html │ │ │ ├── S6339.json │ │ │ ├── S6341.html │ │ │ ├── S6341.json │ │ │ ├── S6343.html │ │ │ ├── S6343.json │ │ │ ├── S6344.html │ │ │ ├── S6344.json │ │ │ ├── S6345.html │ │ │ ├── S6345.json │ │ │ ├── S6346.html │ │ │ ├── S6346.json │ │ │ ├── S6347.html │ │ │ ├── S6347.json │ │ │ ├── S6348.html │ │ │ ├── S6348.json │ │ │ ├── S6349.html │ │ │ ├── S6349.json │ │ │ ├── S6353.html │ │ │ ├── S6353.json │ │ │ ├── S6393.html │ │ │ ├── S6393.json │ │ │ ├── S6395.html │ │ │ ├── S6395.json │ │ │ ├── S6396.html │ │ │ ├── S6396.json │ │ │ ├── S6397.html │ │ │ ├── S6397.json │ │ │ ├── S6418.html │ │ │ ├── S6418.json │ │ │ ├── S6437.html │ │ │ ├── S6437.json │ │ │ ├── S6600.html │ │ │ ├── S6600.json │ │ │ ├── S836.html │ │ │ ├── S836.json │ │ │ ├── S881.html │ │ │ ├── S881.json │ │ │ ├── S905.html │ │ │ ├── S905.json │ │ │ ├── S907.html │ │ │ ├── S907.json │ │ │ ├── S930.html │ │ │ ├── S930.json │ │ │ └── Sonar_way_profile.json │ │ └── php │ │ └── checks │ │ └── hardCodedCredentialsInFunctionCallsCheck │ │ ├── generatedSensitiveFunctions.json │ │ └── manuallyCreatedSensitiveFunctions.json │ └── test │ ├── java │ └── org │ │ └── sonar │ │ ├── php │ │ └── checks │ │ │ ├── AliasFunctionUsageCheckTest.java │ │ │ ├── AllBranchesIdenticalCheckTest.java │ │ │ ├── AlwaysUseCurlyBracesCheckTest.java │ │ │ ├── ArgumentWithDefaultValueNotLastCheckTest.java │ │ │ ├── ArrayCountableCountCheckTest.java │ │ │ ├── AssignmentInSubExpressionCheckTest.java │ │ │ ├── AtLeastThreeCasesInSwitchCheckTest.java │ │ │ ├── AvoidDESCheckTest.java │ │ │ ├── BooleanEqualityComparisonCheckTest.java │ │ │ ├── CallParentConstructorCheckTest.java │ │ │ ├── CallToIniSetCheckTest.java │ │ │ ├── CatchRethrowingCheckTest.java │ │ │ ├── CatchThrowableCheckTest.java │ │ │ ├── CharacterBeforeOpeningPHPTagCheckTest.java │ │ │ ├── CheckBundleTest.java │ │ │ ├── CheckListTest.java │ │ │ ├── ChildAndParentExceptionCaughtCheckTest.java │ │ │ ├── ClassComplexityCheckTest.java │ │ │ ├── ClassCouplingCheckTest.java │ │ │ ├── ClassNameCheckTest.java │ │ │ ├── ClassNamedLikeExceptionCheckTest.java │ │ │ ├── ClearTextProtocolsCheckTest.java │ │ │ ├── ClosingTagInFullPHPFileCheckTest.java │ │ │ ├── CodeFollowingJumpStatementCheckTest.java │ │ │ ├── CollapsibleIfStatementCheckTest.java │ │ │ ├── CommentedOutCodeCheckTest.java │ │ │ ├── ConcatenatedStringLiteralCheckTest.java │ │ │ ├── ConditionalIndentationCheckTest.java │ │ │ ├── ConditionalOnNewLineCheckTest.java │ │ │ ├── ConsistentFunctionReturnCheckTest.java │ │ │ ├── ConstantConditionCheckTest.java │ │ │ ├── ConstantNameCheckTest.java │ │ │ ├── ConstructWithParenthesesCheckTest.java │ │ │ ├── ConstructorDeclarationCheckTest.java │ │ │ ├── ConstructorDependencyInversionCheckTest.java │ │ │ ├── CookiesSecureCheckTest.java │ │ │ ├── CountInsteadOfEmptyCheckTest.java │ │ │ ├── CryptographicKeySizeCheckTest.java │ │ │ ├── DeadStoreCheckTest.java │ │ │ ├── DebugModeCheckTest.java │ │ │ ├── DeprecatedPredefinedVariablesUseCheckTest.java │ │ │ ├── DirectlyAccessingSuperGlobalCheckTest.java │ │ │ ├── DuplicateBranchImplementationCheckTest.java │ │ │ ├── DuplicateConditionCheckTest.java │ │ │ ├── DuplicatedArgumentCheckTest.java │ │ │ ├── DuplicatedMethodCheckTest.java │ │ │ ├── EchoWithParenthesisCheckTest.java │ │ │ ├── ElseIfSequenceKeywordUsageCheckTest.java │ │ │ ├── ElseIfWithoutElseCheckTest.java │ │ │ ├── EmptyDatabasePasswordCheckTest.java │ │ │ ├── EmptyMethodCheckTest.java │ │ │ ├── EmptyNestedBlockCheckTest.java │ │ │ ├── EmptyStatementCheckTest.java │ │ │ ├── EncryptionModeAndPaddingCheckTest.java │ │ │ ├── EvalUseCheckTest.java │ │ │ ├── ExitOrDieUsageCheckTest.java │ │ │ ├── ExpressionComplexityCheckTest.java │ │ │ ├── FieldNameCheckTest.java │ │ │ ├── FileHeaderCheckTest.java │ │ │ ├── FileNameCheckTest.java │ │ │ ├── FileWithSymbolsAndSideEffectsCheckTest.java │ │ │ ├── FixmeTagPresenceCheckTest.java │ │ │ ├── ForHidingWhileCheckTest.java │ │ │ ├── ForLoopCounterChangedCheckTest.java │ │ │ ├── ForLoopIncrementSignCheckTest.java │ │ │ ├── FormattingStandardCheckTest.java │ │ │ ├── FunctionCallArgumentsNumberCheckTest.java │ │ │ ├── FunctionCognitiveComplexityCheckTest.java │ │ │ ├── FunctionComplexityCheckTest.java │ │ │ ├── FunctionDefineOutsideClassCheckTest.java │ │ │ ├── FunctionNameCheckTest.java │ │ │ ├── GenericExceptionCheckTest.java │ │ │ ├── GlobalKeywordAndArrayUsageCheckTest.java │ │ │ ├── GotoUseCheckTest.java │ │ │ ├── HardCodedCredentialsInFunctionCallsCheckTest.java │ │ │ ├── HardCodedCredentialsInVariablesAndUrisCheckTest.java │ │ │ ├── HardCodedIpAddressCheckTest.java │ │ │ ├── HardCodedSecretCheckTest.java │ │ │ ├── HardCodedUriCheckTest.java │ │ │ ├── HashFunctionCheckTest.java │ │ │ ├── HttpOnlyCheckTest.java │ │ │ ├── IdenticalOperandsInBinaryExpressionCheckTest.java │ │ │ ├── IfConditionAlwaysTrueOrFalseCheckTest.java │ │ │ ├── IgnoredReturnValueCheckTest.java │ │ │ ├── ImmediatelyReturnedVariableCheckTest.java │ │ │ ├── IncrementDecrementInSubExpressionCheckTest.java │ │ │ ├── InheritanceDepthCheckTest.java │ │ │ ├── InlineHTMLInFileCheckTest.java │ │ │ ├── InsecureHashCheckTest.java │ │ │ ├── InterfaceNameCheckTest.java │ │ │ ├── InvertedBooleanCheckTest.java │ │ │ ├── KeywordsAndConstantsNotLowerCaseCheckTest.java │ │ │ ├── LeftCurlyBraceEndsLineCheckTest.java │ │ │ ├── LeftCurlyBraceStartsLineCheckTest.java │ │ │ ├── LineLengthCheckTest.java │ │ │ ├── LocalVariableAndParameterNameCheckTest.java │ │ │ ├── LocalVariableShadowsClassFieldCheckTest.java │ │ │ ├── LogicalWordOperatorUsageCheckTest.java │ │ │ ├── LoopExecutingAtMostOnceCheckTest.java │ │ │ ├── LowerCaseColorCheckTest.java │ │ │ ├── MethodNameReturningBooleanCheckTest.java │ │ │ ├── MissingMethodVisibilityCheckTest.java │ │ │ ├── MissingNewLineAtEOFCheckTest.java │ │ │ ├── ModifiersOrderCheckTest.java │ │ │ ├── MoreThanOneClassInFileCheckTest.java │ │ │ ├── MultilineBlocksCurlyBracesCheckTest.java │ │ │ ├── NestedControlFlowDepthCheckTest.java │ │ │ ├── NestedFunctionDepthCheckTest.java │ │ │ ├── NestedSwitchCheckTest.java │ │ │ ├── NestedTernaryOperatorsCheckTest.java │ │ │ ├── NoPaddingRsaCheckTest.java │ │ │ ├── NoSonarCheckTest.java │ │ │ ├── NonEmptyCaseWithoutBreakCheckTest.java │ │ │ ├── NonLFCharAsEOLCheckTest.java │ │ │ ├── NullDereferenceInConditionalCheckTest.java │ │ │ ├── OnePropertyDeclarationPerStatementCheckTest.java │ │ │ ├── OneStatementPerLineCheckTest.java │ │ │ ├── OpeningPHPTagCheckTest.java │ │ │ ├── OverridingMethodSimplyCallParentCheckTest.java │ │ │ ├── OverwrittenArrayElementCheckTest.java │ │ │ ├── PHPDeprecatedFunctionUsageCheckTest.java │ │ │ ├── ParameterSequenceCheckTest.java │ │ │ ├── PerlStyleCommentsUsageCheckTest.java │ │ │ ├── PhpSapiNameFunctionUsageCheckTest.java │ │ │ ├── RandomGeneratorCheckTest.java │ │ │ ├── ReassignedBeforeUsedCheckTest.java │ │ │ ├── RedefineConstantCheckTest.java │ │ │ ├── RedundantFinalCheckTest.java │ │ │ ├── RedundantJumpCheckTest.java │ │ │ ├── RedundantParenthesesCheckTest.java │ │ │ ├── ReferenceInFunctionCallCheckTest.java │ │ │ ├── RepeatedComplementOperatorCheckTest.java │ │ │ ├── RequireIncludeInstructionsUsageCheckTest.java │ │ │ ├── RequireInsteadOfRequireOnceCheckTest.java │ │ │ ├── ReturnOfBooleanExpressionCheckTest.java │ │ │ ├── RightCurlyBraceStartsLineCheckTest.java │ │ │ ├── SSLCertificatesVerificationDisabledCheckTest.java │ │ │ ├── SSLHostVerificationDisabledCheckTest.java │ │ │ ├── SelfAssignmentCheckTest.java │ │ │ ├── SelfKeywordUsageCheckTest.java │ │ │ ├── SessionCookiePersistenceCheckTest.java │ │ │ ├── SilencedErrorsCheckTest.java │ │ │ ├── SleepFunctionUsageCheckTest.java │ │ │ ├── StringLiteralDuplicatedCheckTest.java │ │ │ ├── SwitchCaseTooBigCheckTest.java │ │ │ ├── SwitchDefaultPositionCheckTest.java │ │ │ ├── SwitchWithoutDefaultCheckTest.java │ │ │ ├── TabCharacterCheckTest.java │ │ │ ├── ThisVariableUsageInStaticContextCheckTest.java │ │ │ ├── ThrowThrowableCheckTest.java │ │ │ ├── TodoTagPresenceCheckTest.java │ │ │ ├── TooManyCasesInSwitchCheckTest.java │ │ │ ├── TooManyFieldsInClassCheckTest.java │ │ │ ├── TooManyFunctionParametersCheckTest.java │ │ │ ├── TooManyLinesInClassCheckTest.java │ │ │ ├── TooManyLinesInFileCheckTest.java │ │ │ ├── TooManyLinesInFunctionCheckTest.java │ │ │ ├── TooManyMethodsInClassCheckTest.java │ │ │ ├── TooManyReturnCheckTest.java │ │ │ ├── TrailingCommentCheckTest.java │ │ │ ├── TrailingWhitespaceCheckTest.java │ │ │ ├── UncatchableExceptionCheckTest.java │ │ │ ├── UnreachableCatchBlockCheckTest.java │ │ │ ├── UnsetForeachReferenceVariableCheckTest.java │ │ │ ├── UnusedExceptionCheckTest.java │ │ │ ├── UnusedFunctionParametersCheckTest.java │ │ │ ├── UnusedLocalVariableCheckTest.java │ │ │ ├── UnusedPrivateFieldCheckTest.java │ │ │ ├── UnusedPrivateMethodCheckTest.java │ │ │ ├── UseOfEmptyReturnValueCheckTest.java │ │ │ ├── UseOfOctalValueCheckTest.java │ │ │ ├── UseOfUninitializedVariableCheckTest.java │ │ │ ├── UselessExpressionStatementCheckTest.java │ │ │ ├── UselessIncrementCheckTest.java │ │ │ ├── UselessObjectCreationCheckTest.java │ │ │ ├── VarKeywordUsageCheckTest.java │ │ │ ├── VariableVariablesCheckTest.java │ │ │ ├── WeakSSLProtocolCheckTest.java │ │ │ ├── WrongAssignmentOperatorCheckTest.java │ │ │ ├── ZipEntryCheckTest.java │ │ │ ├── formatting │ │ │ ├── ControlStructureSpacingTest.java │ │ │ ├── CurlyBraceCheckTest.java │ │ │ ├── ExtendsImplementsLineCheckTest.java │ │ │ ├── FunctionSpacingCheckTest.java │ │ │ ├── IndentationCheckTest.java │ │ │ ├── NamespaceAndUseStatementCheckTest.java │ │ │ └── PunctuatorSpacingCheckTest.java │ │ │ ├── phpini │ │ │ ├── AllowUrlCheckTest.java │ │ │ ├── CgiForceRedirectCheckTest.java │ │ │ ├── EnableDlCheckTest.java │ │ │ ├── FileUploadsCheckTest.java │ │ │ ├── OpenBasedirCheckTest.java │ │ │ ├── PhpIniBooleanTest.java │ │ │ ├── PhpIniCheckTestUtils.java │ │ │ └── SessionUseTransSidCheckTest.java │ │ │ ├── phpunit │ │ │ ├── AbortedTestCaseCheckTest.java │ │ │ ├── AssertTrueInsteadOfDedicatedAssertCheckTest.java │ │ │ ├── AssertionArgumentOrderCheckTest.java │ │ │ ├── AssertionCompareToSelfCheckTest.java │ │ │ ├── AssertionInTryCatchCheckTest.java │ │ │ ├── AssertionsAfterExceptionCheckTest.java │ │ │ ├── BooleanOrNullLiteralInAssertionsCheckTest.java │ │ │ ├── ExceptionTestingCheckTest.java │ │ │ ├── NoAssertionInTestCheckTest.java │ │ │ ├── NoTestInTestClassCheckTest.java │ │ │ ├── NotDiscoverableTestCheckTest.java │ │ │ ├── OneExpectedCheckExceptionCheckTest.java │ │ │ └── TestClassNameCheckTest.java │ │ │ ├── regex │ │ │ ├── AbstractRegexCheckTest.java │ │ │ ├── AnchorPrecedenceCheckTest.java │ │ │ ├── DuplicatesInCharacterClassCheckTest.java │ │ │ ├── EmptyAlternativeCheckTest.java │ │ │ ├── EmptyGroupCheckTest.java │ │ │ ├── EmptyStringRepetitionCheckTest.java │ │ │ ├── GraphemeClustersInClassesCheckTest.java │ │ │ ├── GroupReplacementCheckTest.java │ │ │ ├── ImpossibleBackReferenceCheckTest.java │ │ │ ├── ImpossibleBoundariesCheckTest.java │ │ │ ├── InvalidDelimiterCheckTest.java │ │ │ ├── InvalidRegexCheckTest.java │ │ │ ├── MultipleWhitespaceCheckTest.java │ │ │ ├── PossessiveQuantifierContinuationCheckTest.java │ │ │ ├── RedundantRegexAlternativesCheckTest.java │ │ │ ├── RegexComplexityCheckTest.java │ │ │ ├── RegexLookaheadCheckTest.java │ │ │ ├── ReluctantQuantifierCheckTest.java │ │ │ ├── ReluctantQuantifierWithEmptyContinuationCheckTest.java │ │ │ ├── SingleCharCharacterClassCheckTest.java │ │ │ ├── SingleCharacterAlternationCheckTest.java │ │ │ ├── StringReplaceCheckTest.java │ │ │ ├── SuperfluousCurlyBraceCheckTest.java │ │ │ ├── UnicodeAwareCharClassesCheckTest.java │ │ │ ├── UnquantifiedNonCapturingGroupCheckTest.java │ │ │ └── VerboseRegexCheckTest.java │ │ │ ├── security │ │ │ ├── AuthorizationsCheckTest.java │ │ │ ├── CORSPolicyCheckTest.java │ │ │ ├── ChangingAccessibilityCheckTest.java │ │ │ ├── CryptographicHashCheckTest.java │ │ │ ├── DisableCsrfCheckTest.java │ │ │ ├── LDAPAuthenticatedConnectionCheckTest.java │ │ │ ├── POSIXFilePermissionsCheckTest.java │ │ │ ├── QueryUsageCheckTest.java │ │ │ ├── RequestContentLengthCheckTest.java │ │ │ ├── RobustCipherAlgorithmCheckTest.java │ │ │ ├── SessionFixationCheckTest.java │ │ │ ├── SessionFixationStrategyCheckTest.java │ │ │ ├── SignallingProcessCheckTest.java │ │ │ └── XxeCheckTest.java │ │ │ ├── utils │ │ │ ├── CheckUtilsTest.java │ │ │ ├── PhpUnitCheckTest.java │ │ │ ├── RegexUtilsTest.java │ │ │ ├── SyntacticEquivalenceTest.java │ │ │ ├── argumentmatching │ │ │ │ ├── ArgumentMatcherValueContainmentTest.java │ │ │ │ ├── ArgumentVerifierUnaryFunctionTest.java │ │ │ │ ├── ArgumentVerifierValueContainmentTest.java │ │ │ │ ├── FunctionArgumentCheckTest.java │ │ │ │ └── PhpTreeModelTest.java │ │ │ └── type │ │ │ │ ├── ArrayAccessTest.java │ │ │ │ ├── FunctionCallTest.java │ │ │ │ ├── NewObjectCallTest.java │ │ │ │ ├── ObjectMemberFunctionCallTest.java │ │ │ │ ├── StaticFunctionCallTest.java │ │ │ │ ├── TreeValuesTest.java │ │ │ │ └── TypePredicateListTest.java │ │ │ └── wordpress │ │ │ ├── WordPressAutoUpdateCheckTest.java │ │ │ ├── WordPressConfigCheckTest.java │ │ │ ├── WordPressConfigNameCheckTest.java │ │ │ ├── WordPressConfigVisitorTest.java │ │ │ ├── WordPressDbRepairCheckTest.java │ │ │ ├── WordPressExternalRequestsCheckTest.java │ │ │ ├── WordPressFileEditorCheckTest.java │ │ │ ├── WordPressLateConfigCheckTest.java │ │ │ ├── WordPressSaltsCheckTest.java │ │ │ └── WordPressUnfilteredHtmlCheckTest.java │ │ └── plugins │ │ └── php │ │ ├── CheckVerifier.java │ │ ├── TestUtils.java │ │ └── WordPressConfigVerifier.java │ └── resources │ └── checks │ ├── AliasFunctionUsageCheck.php │ ├── AllBranchesIdenticalCheck.php │ ├── AlwaysUseCurlyBracesCheck.php │ ├── ArgumentWithDefaultValueNotLastCheck.php │ ├── ArrayCountableCountCheck.php │ ├── AssignmentInSubExpressionCheck.php │ ├── AtLeastThreeCasesInSwitchCheck.php │ ├── AvoidDESCheck.php │ ├── BooleanEqualityComparisonCheck.php │ ├── CakePhpDebugModeCheck.php │ ├── CallParentConstructorCheck.php │ ├── CallToIniSetCheck.php │ ├── CatchRethrowingCheck.php │ ├── CatchThrowableCheck │ ├── A.php │ ├── B.php │ └── CatchThrowableCheck.php │ ├── CharacterBeforeOpeningPHPTagCheck │ ├── ko.php │ └── ok.php │ ├── ChildAndParentExceptionCaughtCheck.php │ ├── ClassComplexityCheck.php │ ├── ClassCouplingCheck.php │ ├── ClassNameCheck.php │ ├── ClassNamedLikeExceptionCheck │ ├── A.php │ ├── B.php │ └── ClassNamedLikeExceptionCheck.php │ ├── ClosingTagInFullPHPFileCheck │ ├── ko.php │ └── ok.php │ ├── CodeFollowingJumpStatementCheck.php │ ├── CollapsibleIfStatementCheck.php │ ├── CommentedOutCodeCheck.php │ ├── ConcatenatedStringLiteralCheck.php │ ├── ConditionalIndentationCheck.php │ ├── ConditionalOnNewLineCheck.php │ ├── ConsistentFunctionReturnCheck.php │ ├── ConstantConditionCheck.php │ ├── ConstantNameCheck.php │ ├── ConstructWithParenthesesCheck.php │ ├── ConstructorDeclarationCheck.php │ ├── ConstructorDeclarationInNamespaceCheck.php │ ├── ConstructorDependencyInversion.php │ ├── CookiesSecureCheck.php │ ├── CountInsteadOfEmptyCheck.php │ ├── CryptographicKeySize.php │ ├── DeadStoreCheck.php │ ├── DeprecatedPredefinedVariablesUseCheck.php │ ├── DirectlyAccessingSuperGlobalCheck.php │ ├── DuplicateBranchImplementationCheck.php │ ├── DuplicateConditionCheck.php │ ├── DuplicatedArgumentCheck.php │ ├── DuplicatedMethodCheck.php │ ├── EchoWithParenthesisCheck.php │ ├── ElseIfSequenceKeywordUsageCheck.php │ ├── ElseIfWithoutElseCheck.php │ ├── EmptyDatabasePasswordCheck.php │ ├── EmptyMethodCheck.php │ ├── EmptyNestedBlockCheck.php │ ├── EmptyStatementCheck.php │ ├── EncryptionModeAndPaddingCheck.php │ ├── EvalUseCheck.php │ ├── ExitOrDieUsageCheck.php │ ├── ExpressionComplexityCheck.php │ ├── FieldNameCheck.php │ ├── FileHeaderCheck │ ├── empty.php │ ├── emptyWithTag.php │ ├── file1.php │ ├── file2.php │ ├── file3.php │ ├── file4.php │ ├── file5.php │ └── single_line_break.php │ ├── FileNameCheck │ ├── _ko.php │ ├── ko.php │ └── ok.php │ ├── FileWithSymbolsAndSideEffectsCheck │ ├── ko_echo.php │ ├── ko_expression_statement.php │ ├── ko_inline_html.php │ ├── ko_unset_variable.php │ ├── ko_yield.php │ ├── ok.php │ ├── ok_define.php │ └── ok_no_symbol.php │ ├── FixmeTagPresenceCheck.php │ ├── ForHidingWhileCheck.php │ ├── ForLoopCounterChangedCheck.php │ ├── ForLoopIncrementSignCheck.php │ ├── FunctionCallArgumentsNumberCheck.php │ ├── FunctionCognitiveComplexityCheck │ ├── default.php │ └── zeroThreshold.php │ ├── FunctionComplexityCheck.php │ ├── FunctionDefineOutsideClassCheck.php │ ├── FunctionNameCheck.php │ ├── FunctionNameCheckDrupal.php │ ├── FunctionNameCheckDrupalWithCustomRegex.php │ ├── FunctionNameCheckWordpress.php │ ├── GenericExceptionCheck │ ├── ko1.php │ ├── ko2.php │ ├── ko3.php │ ├── ko4.php │ ├── ok1.php │ ├── ok2.php │ └── throw_expressions.php │ ├── GlobalKeywordAndArrayUsageCheck.php │ ├── GotoUseCheck.php │ ├── HardCodedCredentialsInFunctionCallsCheck.php │ ├── HardCodedCredentialsInVariablesAndUrisCheck.php │ ├── HardCodedCredentialsInVariablesAndUrisCheckCustom.php │ ├── HardCodedIpAddressCheck.php │ ├── HardCodedSecretCheckAST.php │ ├── HardCodedSecretCheckCustomRandomnessSensibility.php │ ├── HardCodedSecretCheckCustomWords.php │ ├── HardCodedSecretCheckSecrets.php │ ├── HardCodedUriCheck.php │ ├── HashFunctionCheck.php │ ├── HashFunctionCheckNoIssue.php │ ├── HttpOnlyCheck.php │ ├── IdenticalOperandsInBinaryExpressionCheck.php │ ├── IfConditionAlwaysTrueOrFalseCheck.php │ ├── IgnoredReturnValueCheck.php │ ├── ImmediatelyReturnedVariableCheck.php │ ├── IncrementDecrementInSubExpressionCheck.php │ ├── InheritanceDepthCheck │ ├── defaults.php │ ├── filtered_classes.php │ └── reduce_max_inheritance_depth.php │ ├── InlineHTMLInFileCheck │ ├── ko.php │ ├── ok.php │ ├── ok.phtml │ └── ok_asp.php │ ├── InsecureHashCheck.php │ ├── InterfaceNameCheck.php │ ├── InvertedBooleanCheck.php │ ├── KeywordsAndConstantsNotLowerCaseCheck.php │ ├── KeywordsAndConstantsNotLowerCaseWithDrupalCheck.php │ ├── LeftCurlyBraceEndsLineCheck.php │ ├── LeftCurlyBraceStartsLineCheck.php │ ├── LineLengthCheck.php │ ├── LocalVariableAndParameterNameCheck.php │ ├── LocalVariableShadowsClassFieldCheck.php │ ├── LogicalWordOperatorUsageCheck.php │ ├── LoopExecutingAtMostOnceCheck.php │ ├── LowerCaseColorCheck.php │ ├── MethodNameReturningBooleanCheck.php │ ├── MissingMethodVisibilityCheck.php │ ├── MissingNewLineAtEOF │ ├── EmptyFile.php │ ├── MissingNewLineAtEOF.php │ └── NewLineAtEOF.php │ ├── ModifiersOrderCheck.php │ ├── MoreThanOneClassInFileCheck │ ├── ko1.php │ ├── ko2.php │ ├── ko3.php │ └── ok.php │ ├── MultilineBlocksCurlyBracesCheck.php │ ├── NestedControlFlowDepthCheck.php │ ├── NestedFunctionDepthCheck.php │ ├── NestedSwitchCheck.php │ ├── NestedTernaryOperatorsCheck.php │ ├── NoPaddingRsaCheck.php │ ├── NoSonarCheck.php │ ├── NonEmptyCaseWithoutBreakCheck.php │ ├── NullDereferenceInConditionalCheck.php │ ├── OnePropertyDeclarationPerStatementCheck.php │ ├── OneStatementPerLineCheck.php │ ├── OpeningPHPTagCheck │ ├── ko.php │ ├── ko_starting_comment_1.php │ ├── ko_starting_comment_2.php │ ├── ko_starting_comment_3.php │ ├── ko_starting_comment_4.php │ ├── ok_just_html.php │ ├── ok_long_tag.php │ └── ok_short_echo_tag.php │ ├── OverridingMethodSimplyCallParentCheck.php │ ├── OverwrittenArrayElementCheck.php │ ├── PHPDeprecatedFunctionUsageCheck.php │ ├── PHPDeprecatedFunctionUsageCheck_namespace.php │ ├── ParameterSequenceCheck │ ├── A.php │ ├── B.php │ └── ParameterSequenceCheck.php │ ├── PerlStyleCommentsUsageCheck.php │ ├── PhpSapiNameFunctionUsageCheck.php │ ├── RandomGeneratorCheck.php │ ├── ReassignedBeforeUsedCheck.php │ ├── RedefineConstantCheck.php │ ├── RedundantFinalCheck.php │ ├── RedundantJumpCheck.php │ ├── RedundantParenthesesCheck.php │ ├── ReferenceInFunctionCallCheck.php │ ├── RepeatedComplementOperatorCheck.php │ ├── RequireIncludeInstructionsUsageCheck.php │ ├── RequireIncludeInstructionsUsageCheckLaravel.php │ ├── RequireInsteadOfRequireOnceCheck.php │ ├── RequireInsteadOfRequireOnceCheckLaravel.php │ ├── ReturnOfBooleanExpressionCheck.php │ ├── RightCurlyBraceStartsLineCheck.php │ ├── SSLCertificatesVerificationDisabledCheck.php │ ├── SSLHostVerificationDisabledCheck.php │ ├── SelfAssignmentCheck.php │ ├── SelfKeywordUsageCheck.php │ ├── SessionCookiePersistence.php │ ├── SessionFixationCheck.php │ ├── SilencedErrorsCheck.php │ ├── SleepFunctionUsageCheck.php │ ├── StringLiteralDuplicatedCheck │ ├── array_keys.php │ ├── custom_length.php │ ├── custom_threshold.php │ ├── default.php │ ├── drupal_forms.php │ ├── importmap.php │ └── laravel_validation.php │ ├── SwitchCaseTooBigCheck.php │ ├── SwitchDefaultPositionCheck.php │ ├── SwitchWithoutDefaultCheck.php │ ├── TabCharacterCheck │ ├── TabCharacterCheck.php │ └── TabCharacterCheck_ok.php │ ├── ThisVariableUsageInStaticContextCheck.php │ ├── ThrowThrowableCheck.php │ ├── TodoTagPresenceCheck.php │ ├── TooManyCasesInSwitchCheck.php │ ├── TooManyFieldsInClassCheck.php │ ├── TooManyFunctionParametersCheck.php │ ├── TooManyLinesInClassCheck.php │ ├── TooManyLinesInFileCheck.php │ ├── TooManyLinesInFunctionCheck.php │ ├── TooManyMethodsInClassCheck.php │ ├── TooManyReturnCheck │ ├── custom.php │ └── default.php │ ├── TrailingCommentCheck.php │ ├── TrailingWhitespaceCheck.php │ ├── UncatchableExceptionCheck │ ├── bracketed_namespace.php │ └── unbracketed_namespace.php │ ├── UnreachableCatchBlockCheck.php │ ├── UnsetForeachReferenceVariableCheck.php │ ├── UnusedExceptionCheck.php │ ├── UnusedFunctionParametersCheck.php │ ├── UnusedLocalVariableCheck.php │ ├── UnusedPrivateFieldCheck.php │ ├── UnusedPrivateMethodCheck.php │ ├── UnusedPrivateMethodCheckWithTraits.php │ ├── UseOfEmptyReturnValueCheck.php │ ├── UseOfOctalValueCheck.php │ ├── UseOfUninitializedVariableCheck.php │ ├── UselessExpressionStatementCheck.php │ ├── UselessExpressionStatementCheckHTML.php │ ├── UselessExpressionStatementCheckPartial.php │ ├── UselessIncrementCheck.php │ ├── UselessObjectCreationCheck.php │ ├── VarKeywordUsageCheck.php │ ├── VariableVariablesCheck.php │ ├── WeakSSLProtocolCheck.php │ ├── WrongAssignmentOperatorCheck.php │ ├── ZipEntryCheck.php │ ├── autoload.php │ ├── formattingCheck │ ├── ClosingCurlyBraceCheck.php │ ├── ControlStructureSpacingCheck.php │ ├── CurlyBraceCheck.php │ ├── ExtendsImplementsLineCheck.php │ ├── FunctionSpacingCheck.php │ ├── IndentationCheck.php │ ├── NamespaceAndUseStatementCheck.php │ ├── PunctuatorSpacingCheck.php │ └── empty-script.php │ ├── phpini │ ├── allow_url.ini │ ├── cgi_force_redirect.ini │ ├── cookie_secure.ini │ ├── empty.ini │ ├── enable_dl.ini │ ├── file_uploads.ini │ ├── http_only.ini │ ├── open_basedir.ini │ ├── session_cookie_persistence.ini │ └── session_use_trans_sid.ini │ ├── phpunit │ ├── AbortedTestCaseCheck.php │ ├── AssertTrueInsteadOfDedicatedAssertCheck.php │ ├── AssertionArgumentOrderCheck.php │ ├── AssertionCompareToSelfCheck.php │ ├── AssertionInTryCatchCheck.php │ ├── AssertionsAfterExceptionCheck.php │ ├── BooleanOrNullLiteralInAssertionsCheck.php │ ├── ExceptionTestingCheck.php │ ├── NoAssertionInTestCheck.php │ ├── NoTestInTestClassCheckImportingTestAttribute.php │ ├── NoTestInTestClassCheckWithoutImportingTestAttribute.php │ ├── NotDiscoverableTestCheckTest.php │ ├── OneExpectedCheckExceptionCheck.php │ └── TestClassNameCheck.php │ ├── regex │ ├── AbstractRegexCheck.php │ ├── AnchorPrecedenceCheck.php │ ├── DuplicatesInCharacterClassCheck.php │ ├── EmptyAlternativeCheck.php │ ├── EmptyGroupCheck.php │ ├── EmptyStringRepetitionCheck.php │ ├── GraphemeClustersInClassesCheck.php │ ├── GroupReplacementCheck.php │ ├── ImpossibleBackReferenceCheck.php │ ├── ImpossibleBoundariesCheck.php │ ├── InvalidDelimiterCheck.php │ ├── InvalidRegexCheck.php │ ├── MultipleWhitespaceCheck.php │ ├── PossessiveQuantifierContinuationCheck.php │ ├── RedundantRegexAlternativesCheck.php │ ├── RegexComplexityCheck-21.php │ ├── RegexComplexityCheck.php │ ├── RegexLookaheadCheck.php │ ├── ReluctantQuantifierCheck.php │ ├── ReluctantQuantifierWithEmptyContinuationCheck.php │ ├── SingleCharCharacterClassCheck.php │ ├── SingleCharacterAlternationCheck.php │ ├── StringReplaceCheck.php │ ├── SuperfluousCurlyBraceCheck.php │ ├── UnicodeAwareCharClassesCheck.php │ ├── UnquantifiedNonCapturingGroupCheck.php │ └── VerboseRegexCheck.php │ ├── security │ ├── AuthorizationsCheck │ │ ├── FacadeGateCheck.php │ │ ├── VoterCheck.php │ │ └── VoterInterfaceCheck.php │ ├── CORSCheck │ │ ├── CORSPolicyCheck.php │ │ ├── cors.php │ │ ├── foo.php │ │ └── invalidCorsFile │ │ │ └── cors.php │ ├── ChangingAccessibilityCheck.php │ ├── CryptographicHashCheck.php │ ├── LDAPAuthenticatedConnectionCheck.php │ ├── POSIXFilePermissionsCheck.php │ ├── QueryUsageCheck.php │ ├── RobustCipherAlgorithmCheck.php │ ├── SessionFixationStrategyCheck.php │ ├── SignallingProcessCheck.php │ ├── XxeCheck.php │ ├── XxeCheck_CakeUtils.php │ ├── clearTextProtocolsCheck │ │ ├── ftp.php │ │ ├── laravel │ │ │ └── config │ │ │ │ └── mail.php │ │ ├── phpMailer.php │ │ ├── stringLiterals.php │ │ └── swiftMailer.php │ ├── csrf │ │ ├── LaravelMiddleware.php │ │ ├── SymfonyController.php │ │ ├── SymfonyExtension.php │ │ ├── SymfonyForm.php │ │ └── config │ │ │ └── packages │ │ │ └── SymfonyConfig.php │ └── requestContentLengthCheck │ │ ├── laravelFormRequest.php │ │ ├── laravelRequest.php │ │ ├── laravelValidator.php │ │ └── symfonyFile.php │ ├── utils │ └── PhpUnitCheck.php │ └── wordpress │ ├── WordPresConfigNameCheck │ ├── custom │ │ └── wp-config.php │ └── wp-config.php │ ├── WordPressAutoUpdateCheck │ └── wp-config.php │ ├── WordPressConfigVisitor │ ├── file.php │ └── wp-config.php │ ├── WordPressDbRepairCheck │ └── wp-config.php │ ├── WordPressDebugModeCheck │ └── wp-config.php │ ├── WordPressExternalRequestsCheck │ └── test.php │ ├── WordPressFileEditorCheck │ ├── editFalse.php │ ├── editFalseModsFalse.php │ ├── editFalseModsTrue.php │ └── notSet.php │ ├── WordPressForceSslCheck │ └── wp-config.php │ ├── WordPressLateConfigCheck │ ├── no-wp-config.php │ ├── with-parenthesis.php │ └── without-parenthesis.php │ ├── WordPressSaltsCheck │ └── wp-config.php │ └── WordPressUnfilteredHtmlCheck │ └── wp-config.php ├── php-custom-rules-plugin ├── README.md ├── build.gradle.kts ├── maven │ └── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ └── samples │ │ │ └── php │ │ │ ├── MyPhpRules.java │ │ │ ├── PHPCustomRulesPlugin.java │ │ │ ├── checks │ │ │ ├── ForbiddenFunctionUseCheck.java │ │ │ ├── OtherForbiddenFunctionUseCheck.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ └── resources │ │ └── org │ │ └── sonar │ │ └── l10n │ │ └── php │ │ └── rules │ │ └── custom │ │ ├── S1.html │ │ └── S2.html │ └── test │ ├── java │ └── org │ │ └── sonar │ │ └── samples │ │ └── php │ │ ├── MyPhpRulesTest.java │ │ ├── PHPCustomRulesPluginTest.java │ │ └── checks │ │ ├── ForbiddenFunctionUseCheckTest.java │ │ └── OtherForbiddenFunctionUseCheckTest.java │ └── resources │ └── checks │ ├── forbiddenFunctionUseCheck.php │ └── otherForbiddenFunctionUseCheck.php ├── php-frontend ├── build.gradle.kts └── src │ ├── main │ └── java │ │ └── org │ │ └── sonar │ │ ├── DurationStatistics.java │ │ ├── package-info.java │ │ ├── php │ │ ├── PHPAnalyzer.java │ │ ├── api │ │ │ ├── PHPKeyword.java │ │ │ ├── PHPPunctuator.java │ │ │ └── package-info.java │ │ ├── cache │ │ │ ├── Cache.java │ │ │ ├── CacheContextImpl.java │ │ │ ├── CpdDeserializationInput.java │ │ │ ├── CpdDeserializer.java │ │ │ ├── CpdSerializationInput.java │ │ │ ├── CpdSerializer.java │ │ │ ├── PhpReadCacheImpl.java │ │ │ ├── PhpWriteCacheImpl.java │ │ │ ├── SerializationResult.java │ │ │ ├── StringTable.java │ │ │ ├── SymbolTableDeserializationInput.java │ │ │ ├── SymbolTableDeserializer.java │ │ │ ├── SymbolTableSerializationInput.java │ │ │ ├── SymbolTableSerializer.java │ │ │ ├── VarLengthInputStream.java │ │ │ ├── VarLengthOutputStream.java │ │ │ └── package-info.java │ │ ├── cfg │ │ │ ├── LiveVariablesAnalysis.java │ │ │ └── package-info.java │ │ ├── compat │ │ │ ├── PhpFileImpl.java │ │ │ └── package-info.java │ │ ├── filters │ │ │ ├── PHPIssueFilter.java │ │ │ ├── SuppressWarningFilter.java │ │ │ └── package-info.java │ │ ├── highlighter │ │ │ ├── SymbolHighlighter.java │ │ │ ├── SyntaxHighlighterVisitor.java │ │ │ └── package-info.java │ │ ├── ini │ │ │ ├── BasePhpIniIssue.java │ │ │ ├── PhpIniCheck.java │ │ │ ├── PhpIniIssue.java │ │ │ ├── PhpIniParser.java │ │ │ ├── package-info.java │ │ │ └── tree │ │ │ │ ├── Directive.java │ │ │ │ ├── PhpIniFile.java │ │ │ │ └── package-info.java │ │ ├── metrics │ │ │ ├── CognitiveComplexityVisitor.java │ │ │ ├── CommentLineVisitor.java │ │ │ ├── ComplexityVisitor.java │ │ │ ├── CounterVisitor.java │ │ │ ├── CpdVisitor.java │ │ │ ├── ExecutableLineVisitor.java │ │ │ ├── FileMeasures.java │ │ │ ├── LineVisitor.java │ │ │ ├── MetricsVisitor.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── parser │ │ │ ├── CaseInsensitiveStringExpression.java │ │ │ ├── LexicalConstant.java │ │ │ ├── PHPGrammar.java │ │ │ ├── PHPGrammarRuleKey.java │ │ │ ├── PHPLexicalGrammar.java │ │ │ ├── PHPNodeBuilder.java │ │ │ ├── PHPParser.java │ │ │ ├── PHPParserBuilder.java │ │ │ ├── PHPTokenType.java │ │ │ ├── TreeFactory.java │ │ │ └── package-info.java │ │ ├── regex │ │ │ ├── PhpAnalyzerRegexSource.java │ │ │ ├── PhpRegexCheck.java │ │ │ ├── PhpRegexUtils.java │ │ │ ├── RegexCache.java │ │ │ ├── RegexCheckContext.java │ │ │ └── package-info.java │ │ ├── symbols │ │ │ ├── AbstractClassSymbol.java │ │ │ ├── BuiltinSymbolData.java │ │ │ ├── ClassSymbol.java │ │ │ ├── ClassSymbolData.java │ │ │ ├── ClassSymbolIndex.java │ │ │ ├── FunctionSymbol.java │ │ │ ├── FunctionSymbolData.java │ │ │ ├── FunctionSymbolIndex.java │ │ │ ├── LocationInFileImpl.java │ │ │ ├── MethodSymbol.java │ │ │ ├── MethodSymbolData.java │ │ │ ├── MethodSymbolImpl.java │ │ │ ├── Parameter.java │ │ │ ├── ProjectSymbolData.java │ │ │ ├── Symbol.java │ │ │ ├── Symbols.java │ │ │ ├── Trilean.java │ │ │ ├── UnknownClassSymbol.java │ │ │ ├── UnknownFunctionSymbol.java │ │ │ ├── UnknownLocationInFile.java │ │ │ ├── UnknownMethodSymbol.java │ │ │ ├── Visibility.java │ │ │ └── package-info.java │ │ ├── tree │ │ │ ├── TreeUtils.java │ │ │ ├── impl │ │ │ │ ├── CompilationUnitTreeImpl.java │ │ │ │ ├── PHPTree.java │ │ │ │ ├── ScriptTreeImpl.java │ │ │ │ ├── SeparatedListImpl.java │ │ │ │ ├── VariableIdentifierTreeImpl.java │ │ │ │ ├── declaration │ │ │ │ │ ├── AttributeGroupTreeImpl.java │ │ │ │ │ ├── AttributeTreeImpl.java │ │ │ │ │ ├── BuiltInTypeTreeImpl.java │ │ │ │ │ ├── CallArgumentTreeImpl.java │ │ │ │ │ ├── ClassDeclarationTreeImpl.java │ │ │ │ │ ├── ClassNamespaceNameTreeImpl.java │ │ │ │ │ ├── ClassPropertyDeclarationTreeImpl.java │ │ │ │ │ ├── CombinedTypeTreeImpl.java │ │ │ │ │ ├── ConstantDeclarationTreeImpl.java │ │ │ │ │ ├── DnfIntersectionTypeTreeImpl.java │ │ │ │ │ ├── DnfTypeTreeImpl.java │ │ │ │ │ ├── EnumDeclarationTreeImpl.java │ │ │ │ │ ├── FunctionDeclarationTreeImpl.java │ │ │ │ │ ├── MethodDeclarationTreeImpl.java │ │ │ │ │ ├── NamespaceNameTreeImpl.java │ │ │ │ │ ├── ParameterListTreeImpl.java │ │ │ │ │ ├── ParameterTreeImpl.java │ │ │ │ │ ├── PropertyHookListTreeImpl.java │ │ │ │ │ ├── PropertyHookTreeImpl.java │ │ │ │ │ ├── ReturnTypeClauseTreeImpl.java │ │ │ │ │ ├── TraitAliasTreeImpl.java │ │ │ │ │ ├── TraitMethodReferenceTreeImpl.java │ │ │ │ │ ├── TraitPrecedenceTreeImpl.java │ │ │ │ │ ├── TypeTreeImpl.java │ │ │ │ │ ├── UseClauseTreeImpl.java │ │ │ │ │ ├── UseTraitDeclarationTreeImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── expression │ │ │ │ │ ├── AnonymousClassTreeImpl.java │ │ │ │ │ ├── ArrayAccessTreeImpl.java │ │ │ │ │ ├── ArrayAssignmentPatternElementTreeImpl.java │ │ │ │ │ ├── ArrayAssignmentPatternElements.java │ │ │ │ │ ├── ArrayAssignmentPatternTreeImpl.java │ │ │ │ │ ├── ArrayInitializerBracketTreeImpl.java │ │ │ │ │ ├── ArrayInitializerFunctionTreeImpl.java │ │ │ │ │ ├── ArrayPairTreeImpl.java │ │ │ │ │ ├── ArrowFunctionExpressionTreeImpl.java │ │ │ │ │ ├── AssignmentByReferenceTreeImpl.java │ │ │ │ │ ├── AssignmentExpressionTreeImpl.java │ │ │ │ │ ├── BinaryExpressionTreeImpl.java │ │ │ │ │ ├── CallableConvertTreeImpl.java │ │ │ │ │ ├── CastExpressionTreeImpl.java │ │ │ │ │ ├── CompoundVariableTreeImpl.java │ │ │ │ │ ├── ComputedVariableTreeImpl.java │ │ │ │ │ ├── ConditionalExpressionTreeImpl.java │ │ │ │ │ ├── ExecutionOperatorTreeImpl.java │ │ │ │ │ ├── ExpandableStringCharactersTreeImpl.java │ │ │ │ │ ├── ExpandableStringLiteralTreeImpl.java │ │ │ │ │ ├── FunctionCallTreeImpl.java │ │ │ │ │ ├── FunctionExpressionTreeImpl.java │ │ │ │ │ ├── HeredocStringLiteralTreeImpl.java │ │ │ │ │ ├── LexicalVariablesTreeImpl.java │ │ │ │ │ ├── ListExpressionTreeImpl.java │ │ │ │ │ ├── LiteralTreeImpl.java │ │ │ │ │ ├── MatchConditionClauseTreeImpl.java │ │ │ │ │ ├── MatchDefaultClauseTreeImpl.java │ │ │ │ │ ├── MatchExpressionTreeImpl.java │ │ │ │ │ ├── MemberAccessTreeImpl.java │ │ │ │ │ ├── NameIdentifierTreeImpl.java │ │ │ │ │ ├── NewExpressionTreeImpl.java │ │ │ │ │ ├── ParenthesizedExpressionTreeImpl.java │ │ │ │ │ ├── PostfixExpressionTreeImpl.java │ │ │ │ │ ├── PrefixExpressionTreeImpl.java │ │ │ │ │ ├── PrefixedCastExpressionTreeImpl.java │ │ │ │ │ ├── ReferenceVariableTreeImpl.java │ │ │ │ │ ├── SpreadArgumentTreeImpl.java │ │ │ │ │ ├── ThrowExpressionTreeImpl.java │ │ │ │ │ ├── VariableVariableTreeImpl.java │ │ │ │ │ ├── YieldExpressionTreeImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── lexical │ │ │ │ │ ├── InternalSyntaxToken.java │ │ │ │ │ ├── InternalSyntaxTrivia.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ └── statement │ │ │ │ │ ├── BlockTreeImpl.java │ │ │ │ │ ├── BreakStatementTreeImpl.java │ │ │ │ │ ├── CaseClauseTreeImpl.java │ │ │ │ │ ├── CatchBlockTreeImpl.java │ │ │ │ │ ├── ContinueStatementTreeImpl.java │ │ │ │ │ ├── DeclareStatementTreeImpl.java │ │ │ │ │ ├── DefaultClauseTreeImpl.java │ │ │ │ │ ├── DoWhileStatementTreeImpl.java │ │ │ │ │ ├── EchoTagStatementTreeImpl.java │ │ │ │ │ ├── ElseClauseTreeImpl.java │ │ │ │ │ ├── ElseifClauseTreeImpl.java │ │ │ │ │ ├── EmptyStatementImpl.java │ │ │ │ │ ├── EnumCaseTreeImpl.java │ │ │ │ │ ├── ExpressionListStatementTreeImpl.java │ │ │ │ │ ├── ExpressionStatementTreeImpl.java │ │ │ │ │ ├── ForEachStatementTreeImpl.java │ │ │ │ │ ├── ForStatementTreeImpl.java │ │ │ │ │ ├── GlobalStatementTreeImpl.java │ │ │ │ │ ├── GotoStatementTreeImpl.java │ │ │ │ │ ├── IfStatementTreeImpl.java │ │ │ │ │ ├── InlineHTMLTreeImpl.java │ │ │ │ │ ├── LabelTreeImpl.java │ │ │ │ │ ├── NamespaceStatementTreeImpl.java │ │ │ │ │ ├── ReturnStatementTreeImpl.java │ │ │ │ │ ├── StaticStatementTreeImpl.java │ │ │ │ │ ├── SwitchStatementTreeImpl.java │ │ │ │ │ ├── ThrowStatementTreeImpl.java │ │ │ │ │ ├── TryStatementTreeImpl.java │ │ │ │ │ ├── UnsetVariableStatementTreeImpl.java │ │ │ │ │ ├── UseStatementTreeImpl.java │ │ │ │ │ ├── VariableDeclarationTreeImpl.java │ │ │ │ │ ├── WhileStatementTreeImpl.java │ │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── symbols │ │ │ │ ├── DeclarationVisitor.java │ │ │ │ ├── HasClassSymbol.java │ │ │ │ ├── HasFunctionSymbol.java │ │ │ │ ├── HasMethodSymbol.java │ │ │ │ ├── MemberQualifiedName.java │ │ │ │ ├── MemberSymbolImpl.java │ │ │ │ ├── NamespaceNameResolvingVisitor.java │ │ │ │ ├── QualifiedNames.java │ │ │ │ ├── Scope.java │ │ │ │ ├── SymbolImpl.java │ │ │ │ ├── SymbolQualifiedName.java │ │ │ │ ├── SymbolReturnType.java │ │ │ │ ├── SymbolTableImpl.java │ │ │ │ ├── SymbolUsageVisitor.java │ │ │ │ ├── SymbolVisitor.java │ │ │ │ ├── TypeSymbolImpl.java │ │ │ │ ├── UndeclaredSymbol.java │ │ │ │ └── package-info.java │ │ │ └── visitors │ │ │ │ ├── AssignmentExpressionVisitor.java │ │ │ │ ├── FrameworkDetectionVisitor.java │ │ │ │ ├── PHPCheckContext.java │ │ │ │ ├── WordPressImportDetector.java │ │ │ │ └── package-info.java │ │ └── utils │ │ │ ├── LiteralUtils.java │ │ │ ├── Patterns.java │ │ │ ├── SourceBuilder.java │ │ │ ├── Throwables.java │ │ │ ├── collections │ │ │ ├── IteratorUtils.java │ │ │ ├── ListUtils.java │ │ │ ├── MapBuilder.java │ │ │ ├── SetUtils.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── plugins │ │ └── php │ │ └── api │ │ ├── cache │ │ ├── CacheContext.java │ │ ├── PhpReadCache.java │ │ ├── PhpWriteCache.java │ │ └── package-info.java │ │ ├── cfg │ │ ├── CfgBlock.java │ │ ├── CfgBranchingBlock.java │ │ ├── ControlFlowGraph.java │ │ ├── ControlFlowGraphBuilder.java │ │ ├── PhpCfgBlock.java │ │ ├── PhpCfgBranchingBlock.java │ │ ├── PhpCfgEndBlock.java │ │ └── package-info.java │ │ ├── symbols │ │ ├── MemberSymbol.java │ │ ├── QualifiedName.java │ │ ├── ReturnType.java │ │ ├── Symbol.java │ │ ├── SymbolTable.java │ │ ├── TypeSymbol.java │ │ └── package-info.java │ │ ├── tests │ │ ├── TestIssue.java │ │ └── package-info.java │ │ ├── tree │ │ ├── CompilationUnitTree.java │ │ ├── ScriptTree.java │ │ ├── SeparatedList.java │ │ ├── Tree.java │ │ ├── declaration │ │ │ ├── AttributeGroupTree.java │ │ │ ├── AttributeTree.java │ │ │ ├── BuiltInTypeTree.java │ │ │ ├── CallArgumentTree.java │ │ │ ├── ClassDeclarationTree.java │ │ │ ├── ClassMemberTree.java │ │ │ ├── ClassPropertyDeclarationTree.java │ │ │ ├── ClassTree.java │ │ │ ├── ConstantDeclarationTree.java │ │ │ ├── DeclaredTypeTree.java │ │ │ ├── DnfIntersectionTypeTree.java │ │ │ ├── DnfTypeTree.java │ │ │ ├── EnumDeclarationTree.java │ │ │ ├── FunctionDeclarationTree.java │ │ │ ├── FunctionTree.java │ │ │ ├── HasAttributes.java │ │ │ ├── IntersectionTypeTree.java │ │ │ ├── MethodDeclarationTree.java │ │ │ ├── NamespaceNameTree.java │ │ │ ├── ParameterListTree.java │ │ │ ├── ParameterTree.java │ │ │ ├── PropertyHookListTree.java │ │ │ ├── PropertyHookTree.java │ │ │ ├── ReturnTypeClauseTree.java │ │ │ ├── TypeNameTree.java │ │ │ ├── TypeTree.java │ │ │ ├── UnionTypeTree.java │ │ │ ├── VariableDeclarationTree.java │ │ │ └── package-info.java │ │ ├── expression │ │ │ ├── AnonymousClassTree.java │ │ │ ├── ArrayAccessTree.java │ │ │ ├── ArrayAssignmentPatternElementTree.java │ │ │ ├── ArrayAssignmentPatternTree.java │ │ │ ├── ArrayDestructuringTree.java │ │ │ ├── ArrayInitializerBracketTree.java │ │ │ ├── ArrayInitializerFunctionTree.java │ │ │ ├── ArrayInitializerTree.java │ │ │ ├── ArrayPairTree.java │ │ │ ├── ArrowFunctionExpressionTree.java │ │ │ ├── AssignmentExpressionTree.java │ │ │ ├── BinaryExpressionTree.java │ │ │ ├── CallableConvertTree.java │ │ │ ├── CastExpressionTree.java │ │ │ ├── CompoundVariableTree.java │ │ │ ├── ComputedVariableTree.java │ │ │ ├── ConditionalExpressionTree.java │ │ │ ├── ExecutionOperatorTree.java │ │ │ ├── ExpandableStringCharactersTree.java │ │ │ ├── ExpandableStringLiteralTree.java │ │ │ ├── ExpressionTree.java │ │ │ ├── FunctionCallTree.java │ │ │ ├── FunctionExpressionTree.java │ │ │ ├── HeredocStringLiteralTree.java │ │ │ ├── IdentifierTree.java │ │ │ ├── LexicalVariablesTree.java │ │ │ ├── ListExpressionTree.java │ │ │ ├── LiteralTree.java │ │ │ ├── MatchClauseTree.java │ │ │ ├── MatchConditionClauseTree.java │ │ │ ├── MatchDefaultClauseTree.java │ │ │ ├── MatchExpressionTree.java │ │ │ ├── MemberAccessTree.java │ │ │ ├── NameIdentifierTree.java │ │ │ ├── NewExpressionTree.java │ │ │ ├── ParenthesisedExpressionTree.java │ │ │ ├── PrefixedCastExpressionTree.java │ │ │ ├── ReferenceVariableTree.java │ │ │ ├── SpreadArgumentTree.java │ │ │ ├── ThrowExpressionTree.java │ │ │ ├── UnaryExpressionTree.java │ │ │ ├── VariableIdentifierTree.java │ │ │ ├── VariableTree.java │ │ │ ├── VariableVariableTree.java │ │ │ ├── YieldExpressionTree.java │ │ │ └── package-info.java │ │ ├── lexical │ │ │ ├── SyntaxToken.java │ │ │ ├── SyntaxTrivia.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── statement │ │ │ ├── BlockTree.java │ │ │ ├── BreakStatementTree.java │ │ │ ├── CaseClauseTree.java │ │ │ ├── CatchBlockTree.java │ │ │ ├── ContinueStatementTree.java │ │ │ ├── DeclareStatementTree.java │ │ │ ├── DefaultClauseTree.java │ │ │ ├── DoWhileStatementTree.java │ │ │ ├── EchoTagStatementTree.java │ │ │ ├── ElseClauseTree.java │ │ │ ├── ElseifClauseTree.java │ │ │ ├── EmptyStatementTree.java │ │ │ ├── EnumCaseTree.java │ │ │ ├── ExpressionListStatementTree.java │ │ │ ├── ExpressionStatementTree.java │ │ │ ├── ForEachStatementTree.java │ │ │ ├── ForStatementTree.java │ │ │ ├── GlobalStatementTree.java │ │ │ ├── GotoStatementTree.java │ │ │ ├── IfStatementTree.java │ │ │ ├── InlineHTMLTree.java │ │ │ ├── LabelTree.java │ │ │ ├── NamespaceStatementTree.java │ │ │ ├── ReturnStatementTree.java │ │ │ ├── StatementTree.java │ │ │ ├── StaticStatementTree.java │ │ │ ├── SwitchCaseClauseTree.java │ │ │ ├── SwitchStatementTree.java │ │ │ ├── ThrowStatementTree.java │ │ │ ├── TraitAdaptationStatementTree.java │ │ │ ├── TraitAliasTree.java │ │ │ ├── TraitMethodReferenceTree.java │ │ │ ├── TraitPrecedenceTree.java │ │ │ ├── TryStatementTree.java │ │ │ ├── UnsetVariableStatementTree.java │ │ │ ├── UseClauseTree.java │ │ │ ├── UseStatementTree.java │ │ │ ├── UseTraitDeclarationTree.java │ │ │ ├── WhileStatementTree.java │ │ │ └── package-info.java │ │ └── visitors │ │ ├── CheckContext.java │ │ ├── FileIssue.java │ │ ├── IssueLocation.java │ │ ├── LineIssue.java │ │ ├── LocationInFile.java │ │ ├── PHPCheck.java │ │ ├── PHPCustomRuleRepository.java │ │ ├── PHPSubscriptionCheck.java │ │ ├── PHPTreeSubscriber.java │ │ ├── PHPVisitorCheck.java │ │ ├── PhpFile.java │ │ ├── PhpInputFileContext.java │ │ ├── PhpIssue.java │ │ ├── PreciseIssue.java │ │ ├── VisitorCheck.java │ │ └── package-info.java │ ├── test │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ ├── DurationStatisticsTest.java │ │ │ ├── php │ │ │ ├── FileTestUtils.java │ │ │ ├── PHPAnalyzerTest.java │ │ │ ├── PHPTreeModelTest.java │ │ │ ├── ParsingTestUtils.java │ │ │ ├── cache │ │ │ │ ├── CacheContextImplTest.java │ │ │ │ ├── CacheTest.java │ │ │ │ ├── CpdSerializerTest.java │ │ │ │ ├── PhpReadCacheImplTest.java │ │ │ │ ├── PhpWriteCacheImplTest.java │ │ │ │ ├── StringTableTest.java │ │ │ │ └── SymbolTableSerializerTest.java │ │ │ ├── cfg │ │ │ │ └── LiveVariablesAnalysisTest.java │ │ │ ├── compat │ │ │ │ └── PhpFileImplTest.java │ │ │ ├── filters │ │ │ │ └── SuppressWarningFilterTest.java │ │ │ ├── highlighter │ │ │ │ ├── HighlightChecker.java │ │ │ │ ├── SymbolChecker.java │ │ │ │ ├── SymbolHighlighterTest.java │ │ │ │ └── SyntaxHighlighterVisitorTest.java │ │ │ ├── ini │ │ │ │ ├── BasePhpIniIssueTest.java │ │ │ │ └── PhpIniParserTest.java │ │ │ ├── metrics │ │ │ │ ├── CognitiveComplexityVisitorTest.java │ │ │ │ ├── CommentLineVisitorTest.java │ │ │ │ ├── ComplexityVisitorTest.java │ │ │ │ ├── CounterVisitorTest.java │ │ │ │ ├── CpdVisitorTest.java │ │ │ │ ├── ExecutableLineVisitorTest.java │ │ │ │ ├── LineVisitorTest.java │ │ │ │ └── MetricsVisitorTest.java │ │ │ ├── parser │ │ │ │ ├── CompilationUnitTest.java │ │ │ │ ├── KeywordTest.java │ │ │ │ ├── PHPParserTest.java │ │ │ │ ├── ScriptTest.java │ │ │ │ ├── declaration │ │ │ │ │ ├── AttributeGroupTest.java │ │ │ │ │ ├── ClassConstDeclarationTest.java │ │ │ │ │ ├── ClassConstModifierTest.java │ │ │ │ │ ├── ClassDeclarationTest.java │ │ │ │ │ ├── ClassMemberTest.java │ │ │ │ │ ├── ClassVariableDeclarationTest.java │ │ │ │ │ ├── ConstantDeclarationTest.java │ │ │ │ │ ├── DnfInterfactionTypeTest.java │ │ │ │ │ ├── DnfTypeTest.java │ │ │ │ │ ├── EnumDeclarationTest.java │ │ │ │ │ ├── FunctionCallArgumentTest.java │ │ │ │ │ ├── FunctionDeclarationTest.java │ │ │ │ │ ├── InterfaceDeclarationTest.java │ │ │ │ │ ├── IntersectionTypeTest.java │ │ │ │ │ ├── MemberConstDeclarationTest.java │ │ │ │ │ ├── MemberModifierTest.java │ │ │ │ │ ├── MethodDeclarationTest.java │ │ │ │ │ ├── ParameterListTest.java │ │ │ │ │ ├── ParameterTest.java │ │ │ │ │ ├── PropertyHookListTest.java │ │ │ │ │ ├── PropertyHookTest.java │ │ │ │ │ ├── TraitAliasTest.java │ │ │ │ │ ├── TraitDeclarationTest.java │ │ │ │ │ ├── TraitMethodReferenceFullyQualifiedTest.java │ │ │ │ │ ├── TraitMethodReferenceTest.java │ │ │ │ │ ├── TraitPrecedenceTest.java │ │ │ │ │ ├── TypeNameTest.java │ │ │ │ │ ├── TypeTest.java │ │ │ │ │ ├── UnionTypeTest.java │ │ │ │ │ ├── UseTraitDeclarationTest.java │ │ │ │ │ ├── VariableDeclarationTest.java │ │ │ │ │ └── VisibilityModifierTest.java │ │ │ │ ├── expression │ │ │ │ │ ├── AdditiveExpressionTest.java │ │ │ │ │ ├── AlternativeLogicalOperatorsTest.java │ │ │ │ │ ├── AnonymousClassTest.java │ │ │ │ │ ├── ArrayAssignmentPatternTest.java │ │ │ │ │ ├── ArrayDestructuringAssignmentTest.java │ │ │ │ │ ├── ArrayInitializerTest.java │ │ │ │ │ ├── ArrayPairTest.java │ │ │ │ │ ├── ArrowFunctionExpressionTest.java │ │ │ │ │ ├── AssignmentExpressionTest.java │ │ │ │ │ ├── BitwiseAndExpressionTest.java │ │ │ │ │ ├── BitwiseOrExpressionTest.java │ │ │ │ │ ├── BitwiseXorExpressionTest.java │ │ │ │ │ ├── BooleanLiteralTest.java │ │ │ │ │ ├── CallableConvertTest.java │ │ │ │ │ ├── CastTypeTest.java │ │ │ │ │ ├── CommonScalarTest.java │ │ │ │ │ ├── ComplexEncapsVariableTest.java │ │ │ │ │ ├── CompoundVariableTest.java │ │ │ │ │ ├── ConditionalExpressionTest.java │ │ │ │ │ ├── DimensionalOffsetTest.java │ │ │ │ │ ├── EncapsVarTest.java │ │ │ │ │ ├── EqualityExpressionTest.java │ │ │ │ │ ├── ExitExprTest.java │ │ │ │ │ ├── ExpandableStringLiteralTest.java │ │ │ │ │ ├── ExpressionStatementTest.java │ │ │ │ │ ├── FunctionCallParameterListTest.java │ │ │ │ │ ├── FunctionExpressionTest.java │ │ │ │ │ ├── HeredocStringLiteralTest.java │ │ │ │ │ ├── InternalFunctionTest.java │ │ │ │ │ ├── LexicalVarTest.java │ │ │ │ │ ├── LexicalVarsTest.java │ │ │ │ │ ├── ListAssignmentExpressionTest.java │ │ │ │ │ ├── ListExpressionTest.java │ │ │ │ │ ├── LogicalAndExpressionTest.java │ │ │ │ │ ├── LogicalOrExpressionTest.java │ │ │ │ │ ├── LogicalXorExpressionTest.java │ │ │ │ │ ├── MemberExpressionTest.java │ │ │ │ │ ├── MultiplicativeExpressionTest.java │ │ │ │ │ ├── NamespaceNameTest.java │ │ │ │ │ ├── NewExpressionTest.java │ │ │ │ │ ├── NullCoalescingExpressionTest.java │ │ │ │ │ ├── ObjectMemberAccessTest.java │ │ │ │ │ ├── PipeOperatorExpressionTest.java │ │ │ │ │ ├── PostfixExprTest.java │ │ │ │ │ ├── PowerExpressionTest.java │ │ │ │ │ ├── PrimaryExpressionTest.java │ │ │ │ │ ├── RelationalExpressionTest.java │ │ │ │ │ ├── SemiComplexEncapsVariableTest.java │ │ │ │ │ ├── ShiftExpressionTest.java │ │ │ │ │ ├── SimpleEncapsVariableTest.java │ │ │ │ │ ├── StaticMemberAccessTest.java │ │ │ │ │ ├── UnaryExprTest.java │ │ │ │ │ ├── VariableWithoutObjectsTest.java │ │ │ │ │ └── YieldExpressionTest.java │ │ │ │ ├── lexical │ │ │ │ │ ├── EncapsStringLiteralTest.java │ │ │ │ │ ├── FileOpeningTagTest.java │ │ │ │ │ ├── HeredocTest.java │ │ │ │ │ ├── IdentifierTest.java │ │ │ │ │ ├── InlineHtmlTest.java │ │ │ │ │ ├── NowdocTest.java │ │ │ │ │ ├── NumericLiteralTest.java │ │ │ │ │ ├── RegularStringLiteralTest.java │ │ │ │ │ └── VarIdentifierTest.java │ │ │ │ └── statement │ │ │ │ │ ├── BlockTest.java │ │ │ │ │ ├── BreakStatementTest.java │ │ │ │ │ ├── ContinueStatementTest.java │ │ │ │ │ ├── DeclareStatementTest.java │ │ │ │ │ ├── DoWhileStatementTest.java │ │ │ │ │ ├── EOSTest.java │ │ │ │ │ ├── EchoStatementTest.java │ │ │ │ │ ├── EmptyStatementTest.java │ │ │ │ │ ├── EnumCaseTest.java │ │ │ │ │ ├── ExpressionListTest.java │ │ │ │ │ ├── ForStatementTest.java │ │ │ │ │ ├── ForeachStatementTest.java │ │ │ │ │ ├── GlobalStatementTest.java │ │ │ │ │ ├── GlobalVarTest.java │ │ │ │ │ ├── GotoStatementTest.java │ │ │ │ │ ├── IfStatementTest.java │ │ │ │ │ ├── LabelTest.java │ │ │ │ │ ├── MatchClauseTest.java │ │ │ │ │ ├── MatchExpressionTest.java │ │ │ │ │ ├── NamespaceStatementTest.java │ │ │ │ │ ├── ReturnStatementTest.java │ │ │ │ │ ├── StatementTest.java │ │ │ │ │ ├── StaticStatementTest.java │ │ │ │ │ ├── StaticVariableTest.java │ │ │ │ │ ├── SwitchCaseClauseTest.java │ │ │ │ │ ├── SwitchStatementTest.java │ │ │ │ │ ├── ThrowStatementTest.java │ │ │ │ │ ├── TryStatementTest.java │ │ │ │ │ ├── UnsetVariableStatementTest.java │ │ │ │ │ ├── UseClauseTest.java │ │ │ │ │ ├── UseStatementTest.java │ │ │ │ │ └── WhileStatementTest.java │ │ │ ├── regex │ │ │ │ ├── PhpAnalyzerRegexSourceTest.java │ │ │ │ ├── PhpRegexCheckTest.java │ │ │ │ ├── RegexCacheTest.java │ │ │ │ └── RegexParserTestUtils.java │ │ │ ├── symbols │ │ │ │ ├── ClassSymbolIndexTest.java │ │ │ │ ├── FunctionSymbolAssert.java │ │ │ │ ├── FunctionSymbolIndexTest.java │ │ │ │ ├── LocationInFileImplTest.java │ │ │ │ ├── MethodCallResolutionTest.java │ │ │ │ ├── MethodSymbolTest.java │ │ │ │ ├── ProjectSymbolDataTest.java │ │ │ │ ├── ProjectSymbolTableTest.java │ │ │ │ ├── SymbolTestUtils.java │ │ │ │ ├── TestFile.java │ │ │ │ ├── TrileanTest.java │ │ │ │ └── UnknownLocationInFileTest.java │ │ │ ├── tree │ │ │ │ ├── TreeUtilsTest.java │ │ │ │ ├── impl │ │ │ │ │ ├── CompilationUnitTreeTest.java │ │ │ │ │ ├── ScriptTreeTest.java │ │ │ │ │ ├── SeparatedListImplTest.java │ │ │ │ │ ├── declaration │ │ │ │ │ │ ├── AttributeGroupTreeTest.java │ │ │ │ │ │ ├── AttributeTreeTest.java │ │ │ │ │ │ ├── ClassDeclarationTreeTest.java │ │ │ │ │ │ ├── ClassPropertyDeclarationTreeTest.java │ │ │ │ │ │ ├── ConstantDeclarationTreeTest.java │ │ │ │ │ │ ├── DnfTypeTreeTest.java │ │ │ │ │ │ ├── EnumDeclarationTreeTest.java │ │ │ │ │ │ ├── FunctionDeclarationTreeTest.java │ │ │ │ │ │ ├── MethodDeclarationTreeTest.java │ │ │ │ │ │ ├── NamespaceNameTreeTest.java │ │ │ │ │ │ ├── ParameterListTreeTest.java │ │ │ │ │ │ ├── ParameterTreeTest.java │ │ │ │ │ │ ├── PropertyHookListTreeTest.java │ │ │ │ │ │ ├── PropertyHookTreeTest.java │ │ │ │ │ │ ├── TraitAliasTreeTest.java │ │ │ │ │ │ ├── TraitMethodReferenceTreeTest.java │ │ │ │ │ │ ├── TraitPrecedenceTreeTest.java │ │ │ │ │ │ ├── TypeNameTreeTest.java │ │ │ │ │ │ ├── TypeTreeTest.java │ │ │ │ │ │ ├── UnionTypeTreeTest.java │ │ │ │ │ │ ├── UseDeclarationTreeTest.java │ │ │ │ │ │ ├── UseStatementTreeTest.java │ │ │ │ │ │ └── UseTraitDeclarationTreeTest.java │ │ │ │ │ ├── expression │ │ │ │ │ │ ├── AnonymousClassTreeTest.java │ │ │ │ │ │ ├── ArrayAccessTreeTest.java │ │ │ │ │ │ ├── ArrayAssignmentPatternTreeElementTest.java │ │ │ │ │ │ ├── ArrayAssignmentPatternTreeTest.java │ │ │ │ │ │ ├── ArrayInitializerBracketTreeTest.java │ │ │ │ │ │ ├── ArrayInitializerFunctionTreeTest.java │ │ │ │ │ │ ├── ArrayPairTreeTest.java │ │ │ │ │ │ ├── ArrowFunctionExpressionTreeTest.java │ │ │ │ │ │ ├── AssignmentExpressionTreeTest.java │ │ │ │ │ │ ├── BinaryExpressionTreeTest.java │ │ │ │ │ │ ├── CallableConvertTreeTest.java │ │ │ │ │ │ ├── CastExpressionTreeTest.java │ │ │ │ │ │ ├── CompoundVariableTreeTest.java │ │ │ │ │ │ ├── ComputedVariableTreeTest.java │ │ │ │ │ │ ├── ConditionalExpressionTreeTest.java │ │ │ │ │ │ ├── ExpandableStringCharactersTreeTest.java │ │ │ │ │ │ ├── ExpandableStringLiteralTreeTest.java │ │ │ │ │ │ ├── ExpressionPrecedenceTest.java │ │ │ │ │ │ ├── FunctionCallTreeTest.java │ │ │ │ │ │ ├── FunctionExpressionTreeTest.java │ │ │ │ │ │ ├── HeredocStringLiteralTreeTest.java │ │ │ │ │ │ ├── LexicalVariablesTreeTest.java │ │ │ │ │ │ ├── ListExpressionTreeTest.java │ │ │ │ │ │ ├── LiteralTreeTest.java │ │ │ │ │ │ ├── MemberAccessTreeTest.java │ │ │ │ │ │ ├── NewExpressionTreeTest.java │ │ │ │ │ │ ├── ParenthesizedExpressionTreeTest.java │ │ │ │ │ │ ├── PostfixExpressionTreeTest.java │ │ │ │ │ │ ├── PrefixExpressionTreeTest.java │ │ │ │ │ │ ├── ReferenceVariableTreeTest.java │ │ │ │ │ │ ├── SpreadArgumentTreeTest.java │ │ │ │ │ │ ├── ThrowExpressionTreeTest.java │ │ │ │ │ │ ├── VariableIdentifierTreeTest.java │ │ │ │ │ │ ├── VariableVariableTreeTest.java │ │ │ │ │ │ └── YieldExpressionTreeTest.java │ │ │ │ │ ├── lexical │ │ │ │ │ │ └── InternalSyntaxTokenTest.java │ │ │ │ │ └── statement │ │ │ │ │ │ ├── BlockTreeTest.java │ │ │ │ │ │ ├── BreakStatementTreeTest.java │ │ │ │ │ │ ├── CatchBlockTreeTest.java │ │ │ │ │ │ ├── ContinueStatementTreeTest.java │ │ │ │ │ │ ├── DeclareStatementTreeTest.java │ │ │ │ │ │ ├── DoWhileStatementTreeTest.java │ │ │ │ │ │ ├── EchoTagStatementTreeTest.java │ │ │ │ │ │ ├── ElseClauseTreeTest.java │ │ │ │ │ │ ├── ElseifClauseTreeTest.java │ │ │ │ │ │ ├── EmptyStatementTreeTest.java │ │ │ │ │ │ ├── EnumCaseTreeTest.java │ │ │ │ │ │ ├── ExpressionListStatementTreeTest.java │ │ │ │ │ │ ├── ExpressionStatementTreeTest.java │ │ │ │ │ │ ├── ForEachStatementTreeTest.java │ │ │ │ │ │ ├── ForStatementTreeTest.java │ │ │ │ │ │ ├── GlobalStatementTreeTest.java │ │ │ │ │ │ ├── GotoStatementTreeTest.java │ │ │ │ │ │ ├── IfStatementTreeTest.java │ │ │ │ │ │ ├── InlineHTMLTreeTest.java │ │ │ │ │ │ ├── LabelTreeTest.java │ │ │ │ │ │ ├── MatchClauseTreeTest.java │ │ │ │ │ │ ├── MatchExpressionTreeTest.java │ │ │ │ │ │ ├── NamespaceStatementTreeTest.java │ │ │ │ │ │ ├── ReturnStatementTreeTest.java │ │ │ │ │ │ ├── StaticStatementTreeTest.java │ │ │ │ │ │ ├── SwitchClauseTreeTest.java │ │ │ │ │ │ ├── SwitchStatementTreeTest.java │ │ │ │ │ │ ├── ThrowStatementTreeTest.java │ │ │ │ │ │ ├── TryStatementTreeTest.java │ │ │ │ │ │ ├── UnsetVariableStatementTreeTest.java │ │ │ │ │ │ └── WhileStatementTreeTest.java │ │ │ │ ├── symbols │ │ │ │ │ ├── ClassMemberUsagesTest.java │ │ │ │ │ ├── DeclarationVisitorTest.java │ │ │ │ │ ├── MemberQualifiedNameTest.java │ │ │ │ │ ├── ScopeTest.java │ │ │ │ │ ├── SymbolQualifiedNameTest.java │ │ │ │ │ ├── SymbolReturnTypeTest.java │ │ │ │ │ ├── SymbolTableImplTest.java │ │ │ │ │ ├── UsagesTest.java │ │ │ │ │ └── VariableModifiersTest.java │ │ │ │ └── visitors │ │ │ │ │ ├── AssignmentExpressionVisitorTest.java │ │ │ │ │ ├── FrameworkDetectionVisitorTest.java │ │ │ │ │ ├── PHPCheckContextTest.java │ │ │ │ │ ├── PHPSubscriptionCheckTest.java │ │ │ │ │ ├── PHPVisitorCheckTest.java │ │ │ │ │ └── frameworkDetectors │ │ │ │ │ └── WordPressImportDetectorTest.java │ │ │ └── utils │ │ │ │ ├── Assertions.java │ │ │ │ ├── DummyCheck.java │ │ │ │ ├── LiteralUtilsTest.java │ │ │ │ ├── ThrowablesTest.java │ │ │ │ └── collections │ │ │ │ ├── IteratorUtilsTest.java │ │ │ │ ├── ListUtilsTest.java │ │ │ │ ├── MapBuilderTest.java │ │ │ │ └── SetUtilsTest.java │ │ │ └── plugins │ │ │ └── php │ │ │ └── api │ │ │ ├── cfg │ │ │ ├── CfgPrinter.java │ │ │ ├── ControlFlowGraphTest.java │ │ │ ├── ExpectedCfgStructure.java │ │ │ ├── PhpCfgEndBlockTest.java │ │ │ └── Validator.java │ │ │ ├── symbols │ │ │ └── QualifiedNameTest.java │ │ │ ├── tests │ │ │ ├── PHPCheckVerifierTest.java │ │ │ ├── PhpCheckTestTest.java │ │ │ └── PhpTestFileTest.java │ │ │ └── visitors │ │ │ ├── FileIssueTest.java │ │ │ ├── IssueLocationTest.java │ │ │ ├── LineIssueTest.java │ │ │ └── PreciseIssueTest.java │ └── resources │ │ ├── metrics │ │ ├── classes.php │ │ ├── comments.php │ │ ├── complexity.php │ │ ├── executable_lines.php │ │ ├── file_cognitive_complexity.php │ │ ├── functions.php │ │ ├── lines.php │ │ ├── lines_of_code.php │ │ └── statements.php │ │ ├── phpini │ │ └── php.ini │ │ ├── symbols │ │ ├── class_members_usages.php │ │ ├── namespace_declared_types.php │ │ ├── scope_same_name.php │ │ ├── scopes.php │ │ ├── symbolBuiltins.php │ │ ├── symbolCase.php │ │ ├── symbolTable.php │ │ ├── usages.php │ │ └── variable_modifiers.php │ │ ├── tests │ │ ├── file-issue.php │ │ ├── line-issue.php │ │ ├── multifile │ │ │ ├── file1.php │ │ │ └── file2.php │ │ ├── no-issue.php │ │ ├── precise-issue.php │ │ └── testfile.php │ │ └── visitors │ │ ├── long-concat.php │ │ └── test.php │ └── testFixtures │ └── java │ └── org │ └── sonar │ └── php │ └── utils │ ├── ExpectedIssuesParser.java │ ├── PHPCheckTest.java │ ├── PHPCheckVerifier.java │ ├── PhpTestFile.java │ └── ReadWriteInMemoryCache.java ├── settings.gradle.kts ├── sonar-php-plugin ├── build.gradle.kts └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── sonar │ │ │ └── plugins │ │ │ └── php │ │ │ ├── AnalysisException.java │ │ │ ├── AnalysisScanner.java │ │ │ ├── CancellationException.java │ │ │ ├── FileHashingUtils.java │ │ │ ├── PHPChecks.java │ │ │ ├── PHPProfileDefinition.java │ │ │ ├── PHPRulesDefinition.java │ │ │ ├── PHPSensor.java │ │ │ ├── PhpExclusionsFileFilter.java │ │ │ ├── PhpIniSensor.java │ │ │ ├── PhpPlugin.java │ │ │ ├── Scanner.java │ │ │ ├── SymbolScanner.java │ │ │ ├── api │ │ │ ├── Php.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── reports │ │ │ ├── AbstractExternalRulesDefinition.java │ │ │ ├── AbstractReportImporter.java │ │ │ ├── ExternalIssuesSensor.java │ │ │ ├── ExternalReportFileHandler.java │ │ │ ├── ExternalReportWildcardProvider.java │ │ │ ├── JsonReportReader.java │ │ │ ├── ReportImporter.java │ │ │ ├── package-info.java │ │ │ ├── phpstan │ │ │ │ ├── PhpStanJsonReportReader.java │ │ │ │ ├── PhpStanRulesDefinition.java │ │ │ │ ├── PhpStanSensor.java │ │ │ │ └── package-info.java │ │ │ ├── phpunit │ │ │ │ ├── CoverageFileParserForPhpUnit.java │ │ │ │ ├── CoverageResultImporter.java │ │ │ │ ├── JUnitLogParserForPhpUnit.java │ │ │ │ ├── ParseException.java │ │ │ │ ├── PhpUnitReportImporter.java │ │ │ │ ├── PhpUnitSensor.java │ │ │ │ ├── TestFileReport.java │ │ │ │ ├── TestResultImporter.java │ │ │ │ ├── package-info.java │ │ │ │ └── xml │ │ │ │ │ ├── CoverageNode.java │ │ │ │ │ ├── FileNode.java │ │ │ │ │ ├── LineNode.java │ │ │ │ │ ├── PackageNode.java │ │ │ │ │ ├── ProjectNode.java │ │ │ │ │ ├── TestCase.java │ │ │ │ │ ├── TestSuite.java │ │ │ │ │ ├── TestSuites.java │ │ │ │ │ └── package-info.java │ │ │ └── psalm │ │ │ │ ├── PsalmJsonReportReader.java │ │ │ │ ├── PsalmRulesDefinition.java │ │ │ │ ├── PsalmSensor.java │ │ │ │ └── package-info.java │ │ │ └── warning │ │ │ ├── AnalysisWarningsWrapper.java │ │ │ ├── DefaultAnalysisWarningsWrapper.java │ │ │ └── package-info.java │ └── resources │ │ ├── licenses │ │ ├── LICENSE.txt │ │ └── THIRD_PARTY_LICENSES │ │ │ ├── com.fasterxml.woodstox.woodstox-core-LICENSE.txt │ │ │ ├── com.google.code.findbugs.jsr305-LICENSE.txt │ │ │ ├── org.apache.commons.commons-lang3-LICENSE.txt │ │ │ ├── org.codehaus.staxmate.staxmate-LICENSE.txt │ │ │ ├── org.codehaus.woodstox.stax2-api-LICENSE.txt │ │ │ ├── org.ow2.asm.asm-LICENSE.txt │ │ │ ├── org.sonarsource.analyzer-commons.sonar-analyzer-commons-LICENSE.txt │ │ │ ├── org.sonarsource.analyzer-commons.sonar-regex-parsing-LICENSE.txt │ │ │ ├── org.sonarsource.sslr.sslr-core-LICENSE.txt │ │ │ └── stax.stax-api-LICENSE.txt │ │ └── org │ │ └── sonar │ │ └── plugins │ │ └── php │ │ └── reports │ │ ├── phpstan │ │ └── rules.json │ │ └── psalm │ │ └── rules.json │ └── test │ ├── java │ ├── com │ │ └── sonar │ │ │ └── plugins │ │ │ └── security │ │ │ └── api │ │ │ └── PhpRules.java │ └── org │ │ └── sonar │ │ └── plugins │ │ └── php │ │ ├── PHPProfileDefinitionTest.java │ │ ├── PHPRulesDefinitionTest.java │ │ ├── PHPSensorTest.java │ │ ├── PhpExclusionsFileFilterTest.java │ │ ├── PhpIniSensorTest.java │ │ ├── PhpPluginTest.java │ │ ├── PhpTestUtils.java │ │ ├── ScannerTest.java │ │ ├── SymbolScannerTest.java │ │ ├── api │ │ └── PhpTest.java │ │ ├── reports │ │ ├── AbstractExternalRulesDefinitionTest.java │ │ ├── ExternalReportFileHandlerTest.java │ │ ├── ExternalReportWildcardProviderTest.java │ │ ├── ReportSensorTest.java │ │ ├── phpstan │ │ │ ├── PhpStanRulesDefinitionTest.java │ │ │ └── PhpStanSensorTest.java │ │ ├── phpunit │ │ │ ├── CoverageFileParserForPhpUnitTest.java │ │ │ ├── CoverageResultImporterTest.java │ │ │ ├── JUnitLogParserForPhpUnitTest.java │ │ │ ├── PhpUnitSensorTest.java │ │ │ ├── TestFileReportTest.java │ │ │ ├── TestResultImporterTest.java │ │ │ └── xml │ │ │ │ ├── TestCaseTest.java │ │ │ │ ├── TestSuiteTest.java │ │ │ │ └── TestSuitesTest.java │ │ └── psalm │ │ │ ├── PsalmRulesDefinitionTest.java │ │ │ └── PsalmSensorTest.java │ │ └── warning │ │ └── DefaultAnalysisWarningsWrapperTest.java │ └── resources │ ├── Mail.php │ ├── Math2.php │ ├── Math3.php │ ├── PHPSquidSensor.php │ ├── Test.php │ ├── cpd.php │ ├── cross-file │ ├── A.php │ └── B.php │ ├── disable_rules_for_sonarlint.php │ ├── empty.php │ ├── exclusions │ ├── empty.php │ ├── excluded.php │ ├── excluded2.php │ ├── excluded3.php │ ├── excluded4.php │ └── included.php │ ├── extern-file-handler │ ├── index.php │ └── subfolder │ │ └── index.php │ ├── fileWithBom.php │ ├── hash │ ├── main.php │ └── modified.php │ ├── incremental │ ├── baseFile.php │ └── changedFile.php │ ├── parseError.php │ ├── phpini-error │ └── php.ini │ ├── phpini │ └── php.ini │ ├── phpunit-reports │ └── coverage │ │ ├── it-coverage.xml │ │ ├── overall-coverage.xml │ │ └── ut-coverage.xml │ ├── readonlyPropertyPromotion.php │ ├── regexIssue.php │ ├── reports │ ├── phpstan │ │ ├── file1.php │ │ ├── file2.php │ │ ├── file3.php │ │ ├── no-object-as-root.php │ │ ├── not-phpstan-report.json │ │ ├── phpstan-report-abs.json │ │ ├── phpstan-report-abs_win.json │ │ ├── phpstan-report-empty.json │ │ ├── phpstan-report-no-issue.json │ │ ├── phpstan-report-with-error.json │ │ ├── phpstan-report-with-line-and-message-error.json │ │ ├── phpstan-report.json │ │ ├── phpstan-report_win.json │ │ └── phpstan-with-context-in-path.json │ ├── phpunit │ │ ├── phpunit-invalid.xml │ │ ├── phpunit-junit-report-empty.xml │ │ ├── phpunit-junit-report-no-time.xml │ │ ├── phpunit-junit-report.xml │ │ ├── phpunit-no-file.xml │ │ ├── phpunit-with-empty-testsuites.xml │ │ ├── phpunit.coverage-fqn.xml │ │ ├── phpunit.coverage-fqn_win.xml │ │ ├── phpunit.coverage-invalid.xml │ │ ├── phpunit.coverage-no-project.xml │ │ ├── phpunit.coverage-no-record.xml │ │ ├── phpunit.coverage-with-filenode-without-line.xml │ │ ├── phpunit.coverage-with-no-statements-covered.xml │ │ ├── phpunit.coverage-with-package.xml │ │ ├── phpunit.coverage.xml │ │ ├── src │ │ │ ├── Banana.php │ │ │ ├── IndexControllerTest.php │ │ │ └── Monkey.php │ │ └── test-cases-status.xml │ └── psalm │ │ ├── file1.php │ │ ├── file2.php │ │ ├── not-psalm-report.json │ │ ├── psalm-report-abs.json │ │ ├── psalm-report-abs_win.json │ │ ├── psalm-report-empty.json │ │ ├── psalm-report-with-errors.json │ │ ├── psalm-report-with-missing-fields.json │ │ └── psalm-report.json │ ├── src │ ├── App.php │ └── EmailTest.php │ └── suppressWarnings.php ├── sonarpedia.json └── third-party-licenses.sh /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | .github/CODEOWNERS @SonarSource/security-engine-squad 2 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/renovate.json -------------------------------------------------------------------------------- /.github/workflows/AutomateRelease.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/AutomateRelease.yml -------------------------------------------------------------------------------- /.github/workflows/PullRequestClosed.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/PullRequestClosed.yml -------------------------------------------------------------------------------- /.github/workflows/PullRequestCreated.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/PullRequestCreated.yml -------------------------------------------------------------------------------- /.github/workflows/RequestReview.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/RequestReview.yml -------------------------------------------------------------------------------- /.github/workflows/SubmitReview.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/SubmitReview.yml -------------------------------------------------------------------------------- /.github/workflows/ToggleLockBranch.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/ToggleLockBranch.yml -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.github/workflows/bump-versions.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/bump-versions.yaml -------------------------------------------------------------------------------- /.github/workflows/mark-stale-pull-requests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/mark-stale-pull-requests.yml -------------------------------------------------------------------------------- /.github/workflows/pr-cleanup.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/pr-cleanup.yml -------------------------------------------------------------------------------- /.github/workflows/releasability-status.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/releasability-status.yaml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/shadow_scan.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/shadow_scan.yml -------------------------------------------------------------------------------- /.github/workflows/update-rule-metadata.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.github/workflows/update-rule-metadata.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.gitmodules -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /LICENSE_HEADER: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/LICENSE_HEADER -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/NOTICE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/SECURITY.md -------------------------------------------------------------------------------- /doc/CFG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/doc/CFG.md -------------------------------------------------------------------------------- /doc/infeasible-finally-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/doc/infeasible-finally-path.png -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/gradlew.bat -------------------------------------------------------------------------------- /its/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/its/README.md -------------------------------------------------------------------------------- /its/plugin/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/its/plugin/build.gradle.kts -------------------------------------------------------------------------------- /its/plugin/projects/big_concat/test.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/its/plugin/projects/big_concat/test.php -------------------------------------------------------------------------------- /its/plugin/projects/custom_rules/src/simple.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/its/plugin/projects/custom_rules/src/simple.php -------------------------------------------------------------------------------- /its/plugin/projects/drupal_project/test.php: -------------------------------------------------------------------------------- 1 | Some Html here 6 | -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/InlineHTMLInFileCheck/ok.phtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/InlineHTMLInFileCheck/ok.phtml -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/InlineHTMLInFileCheck/ok_asp.php: -------------------------------------------------------------------------------- 1 | <% 2 | 3 | echo "Hello World!"; 4 | 5 | %> 6 | -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/InsecureHashCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/InsecureHashCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/InterfaceNameCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/InterfaceNameCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/InvertedBooleanCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/InvertedBooleanCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/LeftCurlyBraceEndsLineCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/LeftCurlyBraceEndsLineCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/LineLengthCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/LineLengthCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/LowerCaseColorCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/LowerCaseColorCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/MissingNewLineAtEOF/EmptyFile.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/MissingNewLineAtEOF/MissingNewLineAtEOF.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/MissingNewLineAtEOF/NewLineAtEOF.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/ModifiersOrderCheck.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SonarSource/sonar-php/HEAD/php-checks/src/test/resources/checks/ModifiersOrderCheck.php -------------------------------------------------------------------------------- /php-checks/src/test/resources/checks/MoreThanOneClassInFileCheck/ok.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2 | 3 | 2 | 3 | -------------------------------------------------------------------------------- /sonar-php-plugin/src/test/resources/reports/phpunit/src/Banana.php: -------------------------------------------------------------------------------- 1 |