mirror of
git://develop.git.wordpress.org/
synced 2025-01-16 20:38:35 +01:00
Build/Tools: Add PHPCS to the 5.0 branch.
This allows us to apply WordPress Coding Standards rules to new files in the 5.0 branch. Props netweb. Fixes #44366. git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43786 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
c6765044a1
commit
d94fa844cf
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,6 +7,8 @@ wp-tests-config.php
|
||||
|
||||
# Files and folders related to build/test tools
|
||||
/phpunit.xml
|
||||
/.phpcs.xml
|
||||
/phpcs.xml
|
||||
/tests/phpunit/data/plugins/wordpress-importer
|
||||
/tests/phpunit/data/.trac-ticket-cache*
|
||||
/tests/qunit/compiled.html
|
||||
|
20
composer.json
Normal file
20
composer.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "wordpress/wordpress",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"description": "WordPress is open source software you can use to create a beautiful website, blog, or app.",
|
||||
"homepage": "https://wordpress.org",
|
||||
"keywords": [
|
||||
"blog", "cms", "wordpress", "wp"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://core.trac.wordpress.org/"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "~0.4.4",
|
||||
"wp-coding-standards/wpcs": "~1.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"format": "phpcbf --standard=phpcs.xml.dist --report-summary --report-source",
|
||||
"lint": "phpcs --standard=phpcs.xml.dist --report-summary --report-source"
|
||||
}
|
||||
}
|
180
composer.lock
generated
Normal file
180
composer.lock
generated
Normal file
@ -0,0 +1,180 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "525cadb533bc92cc922d79144b33b14a",
|
||||
"packages": [],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
||||
"version": "v0.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
|
||||
"reference": "2e41850d5f7797cbb1af7b030d245b3b24e63a08"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/2e41850d5f7797cbb1af7b030d245b3b24e63a08",
|
||||
"reference": "2e41850d5f7797cbb1af7b030d245b3b24e63a08",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0",
|
||||
"php": "^5.3|^7",
|
||||
"squizlabs/php_codesniffer": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "*",
|
||||
"wimg/php-compatibility": "^8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"dealerdirect/qa-tools": "All the PHP QA tools you'll need"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Franck Nijhof",
|
||||
"email": "f.nijhof@dealerdirect.nl",
|
||||
"homepage": "http://workingatdealerdirect.eu",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
||||
"homepage": "http://workingatdealerdirect.eu",
|
||||
"keywords": [
|
||||
"PHPCodeSniffer",
|
||||
"PHP_CodeSniffer",
|
||||
"code quality",
|
||||
"codesniffer",
|
||||
"composer",
|
||||
"installer",
|
||||
"phpcs",
|
||||
"plugin",
|
||||
"qa",
|
||||
"quality",
|
||||
"standard",
|
||||
"standards",
|
||||
"style guide",
|
||||
"stylecheck",
|
||||
"tests"
|
||||
],
|
||||
"time": "2017-12-06T16:27:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6ad28354c04b364c3c71a34e4a18b629cc3b231e",
|
||||
"reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-simplexml": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-xmlwriter": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/phpcs",
|
||||
"bin/phpcbf"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Greg Sherwood",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2018-09-23T23:08:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wp-coding-standards/wpcs",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
|
||||
"reference": "539c6d74e6207daa22b7ea754d6f103e9abb2755"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/539c6d74e6207daa22b7ea754d6f103e9abb2755",
|
||||
"reference": "539c6d74e6207daa22b7ea754d6f103e9abb2755",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3",
|
||||
"squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpcompatibility/php-compatibility": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
|
||||
},
|
||||
"type": "phpcodesniffer-standard",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards",
|
||||
"wordpress"
|
||||
],
|
||||
"time": "2018-07-25T18:10:35+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": []
|
||||
}
|
122
phpcs.xml.dist
Normal file
122
phpcs.xml.dist
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset name="WordPress Coding Standards">
|
||||
<description>Apply WordPress Coding Standards to all Core files</description>
|
||||
|
||||
<rule ref="WordPress-Core"/>
|
||||
<rule ref="WordPress.CodeAnalysis.EmptyStatement"/>
|
||||
|
||||
<rule ref="PEAR.Functions.FunctionCallSignature">
|
||||
<properties>
|
||||
<property name="allowMultipleArguments" value="false"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<arg name="extensions" value="php"/>
|
||||
|
||||
<!-- Strip the filepaths down to the relevant bit. -->
|
||||
<arg name="basepath" value="./"/>
|
||||
|
||||
<!-- Check up to 20 files simultanously. -->
|
||||
<arg name="parallel" value="20"/>
|
||||
|
||||
<!-- Show sniff codes in all reports -->
|
||||
<arg value="ps"/>
|
||||
|
||||
<file>.</file>
|
||||
|
||||
<!-- Exclude the build folder in the current directory, as Travis puts the checkout in a build directory. -->
|
||||
<exclude-pattern type="relative">^build/*</exclude-pattern>
|
||||
|
||||
<!-- Directories and third party library exclusions -->
|
||||
<exclude-pattern>/node_modules/*</exclude-pattern>
|
||||
<exclude-pattern>/vendor/*</exclude-pattern>
|
||||
|
||||
<exclude-pattern>/src/wp-admin/includes/class-ftp*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-admin/includes/class-pclzip\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-admin/includes/deprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-admin/includes/ms-deprecated\.php</exclude-pattern>
|
||||
|
||||
<exclude-pattern>/src/wp-includes/atomlib\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-IXR\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-json\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-phpass\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-phpmailer\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-pop3\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-requests\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-simplepie\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-smtp\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/class-snoopy\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/deprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/ms-deprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/pluggable-deprecated\.php</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/rss\.php</exclude-pattern>
|
||||
|
||||
<exclude-pattern>/src/wp-includes/ID3/*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/IXR/*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/random_compat/*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/Requests/*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/SimplePie/*</exclude-pattern>
|
||||
<exclude-pattern>/src/wp-includes/Text/*</exclude-pattern>
|
||||
|
||||
<!-- Test data and fixtures -->
|
||||
<exclude-pattern>/tests/phpunit/build*</exclude-pattern>
|
||||
<exclude-pattern>/tests/phpunit/data/*</exclude-pattern>
|
||||
|
||||
<exclude-pattern>/tools/*</exclude-pattern>
|
||||
|
||||
<!-- Whitelist the WP DB Class and related tests for usage of direct database access functions. -->
|
||||
<rule ref="WordPress.DB.RestrictedFunctions">
|
||||
<exclude-pattern>/src/wp-includes/wp-db\.php</exclude-pattern>
|
||||
<exclude-pattern>/tests/phpunit/tests/db/charset\.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<!-- Whitelist the WP DB related tests for issues with prepared SQL placeholders
|
||||
(as the handling of those are being tested). -->
|
||||
<rule ref="WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare">
|
||||
<exclude-pattern>/tests/phpunit/tests/db\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="WordPress.DB.PreparedSQLPlaceholders.UnsupportedPlaceholder">
|
||||
<exclude-pattern>/tests/phpunit/tests/db\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="WordPress.DB.PreparedSQLPlaceholders.UnescapedLiteral">
|
||||
<exclude-pattern>/tests/phpunit/tests/db\.php</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="WordPress.DB.PreparedSQL.NotPrepared">
|
||||
<exclude-pattern>/tests/phpunit/tests/admin/includesSchema\.php</exclude-pattern>
|
||||
<exclude-pattern>/tests/phpunit/tests/multisite/site\.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<!-- Whitelist the I18n functions file from issues identified by the I18n sniff
|
||||
(such as calling the low-level translate() function). -->
|
||||
<rule ref="WordPress.WP.I18n">
|
||||
<exclude-pattern>/src/wp-includes/l10n\.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="Generic.Functions.FunctionCallArgumentSpacing">
|
||||
<exclude-pattern>/wp-config\.php</exclude-pattern>
|
||||
<exclude-pattern>/wp-config-sample\.php</exclude-pattern>
|
||||
<exclude-pattern>/wp-tests-config\.php</exclude-pattern>
|
||||
<exclude-pattern>/wp-tests-config-sample\.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<rule ref="Generic.Files.LineEndings">
|
||||
<exclude-pattern>/wp-config\.php</exclude-pattern>
|
||||
<exclude-pattern>/wp-config-sample\.php</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
<!-- Whitelist test classes for select sniffs. -->
|
||||
<rule ref="WordPress.Files.FileName">
|
||||
<properties>
|
||||
<property name="custom_test_class_whitelist" type="array" value="WP_UnitTestCase,WP_Ajax_UnitTestCase,WP_Canonical_UnitTestCase,WP_Test_REST_TestCase,WP_Test_REST_Controller_Testcase,WP_Test_REST_Post_Type_Controller_Testcase,WP_XMLRPC_UnitTestCase"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<!-- Exclude the unit tests from select sniffs. -->
|
||||
<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
|
||||
<exclude-pattern>/tests/phpunit/tests/*</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="PEAR.NamingConventions.ValidClassName.Invalid">
|
||||
<exclude-pattern>/tests/phpunit/tests/*</exclude-pattern>
|
||||
</rule>
|
||||
|
||||
</ruleset>
|
Loading…
x
Reference in New Issue
Block a user