mirror of
https://github.com/WordPress/five-for-the-future.git
synced 2025-04-16 16:43:42 +03:00
Add Composer and PHPCS
This commit is contained in:
parent
94db0ea6ab
commit
a5bf51cc58
28
composer.json
Normal file
28
composer.json
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "wordpress/five-for-the-future",
|
||||
"description": "",
|
||||
"homepage": "https://wordpress.org/five-for-the-future",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"support": {
|
||||
"issues": "https://github.com/WordPress/five-for-the-future/issues"
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.2"
|
||||
},
|
||||
"vendor-dir": "mu-plugins/vendor"
|
||||
},
|
||||
"require": {},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "0.5.0",
|
||||
"wp-coding-standards/wpcs": "2.1.1"
|
||||
},
|
||||
"scripts": {
|
||||
"phpcs": [
|
||||
"phpcs --extensions=php -s -p"
|
||||
],
|
||||
"phpcbf": [
|
||||
"phpcbf -p"
|
||||
]
|
||||
}
|
||||
}
|
183
composer.lock
generated
Normal file
183
composer.lock
generated
Normal file
|
@ -0,0 +1,183 @@
|
|||
{
|
||||
"_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": "8b5eec1d444be318e3eea3d984febc11",
|
||||
"packages": [],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
||||
"version": "v0.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
|
||||
"reference": "e749410375ff6fb7a040a68878c656c2e610b132"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132",
|
||||
"reference": "e749410375ff6fb7a040a68878c656c2e610b132",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0",
|
||||
"php": "^5.3|^7",
|
||||
"squizlabs/php_codesniffer": "^2|^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "*",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"sensiolabs/security-checker": "^4.1.0"
|
||||
},
|
||||
"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": "franck.nijhof@dealerdirect.com",
|
||||
"homepage": "http://www.frenck.nl",
|
||||
"role": "Developer / IT Manager"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
||||
"homepage": "http://www.dealerdirect.com",
|
||||
"keywords": [
|
||||
"PHPCodeSniffer",
|
||||
"PHP_CodeSniffer",
|
||||
"code quality",
|
||||
"codesniffer",
|
||||
"composer",
|
||||
"installer",
|
||||
"phpcs",
|
||||
"plugin",
|
||||
"qa",
|
||||
"quality",
|
||||
"standard",
|
||||
"standards",
|
||||
"style guide",
|
||||
"stylecheck",
|
||||
"tests"
|
||||
],
|
||||
"time": "2018-10-26T13:21:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "0afebf16a2e7f1e434920fa976253576151effe9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/0afebf16a2e7f1e434920fa976253576151effe9",
|
||||
"reference": "0afebf16a2e7f1e434920fa976253576151effe9",
|
||||
"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": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2019-09-26T23:12:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wp-coding-standards/wpcs",
|
||||
"version": "2.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
|
||||
"reference": "bd9c33152115e6741e3510ff7189605b35167908"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/bd9c33152115e6741e3510ff7189605b35167908",
|
||||
"reference": "bd9c33152115e6741e3510ff7189605b35167908",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4",
|
||||
"squizlabs/php_codesniffer": "^3.3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0 || 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": "2019-05-21T02:50:00+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "7.2"
|
||||
}
|
||||
}
|
143
phpcs.xml.dist
Normal file
143
phpcs.xml.dist
Normal file
|
@ -0,0 +1,143 @@
|
|||
<?xml version="1.0" ?>
|
||||
<ruleset name="WordCamp.org Coding Standards">
|
||||
<description>Apply customized version of WordPress Coding Standards to WordCamp.org projects.</description>
|
||||
|
||||
<!--
|
||||
Setup instructions:
|
||||
|
||||
1) Install PHPCS & all required code standards using `composer install`
|
||||
2) Run `composer run phpcs`. You can use the `-a` flag to run it interactively.
|
||||
|
||||
See these links for useful information:
|
||||
- https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
|
||||
- https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties
|
||||
- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties
|
||||
-->
|
||||
|
||||
<!-- Exclude 3rd-party files -->
|
||||
<exclude-pattern>*/vendor/*</exclude-pattern>
|
||||
<exclude-pattern>*/node_modules/*</exclude-pattern>
|
||||
<exclude-pattern>/plugins/*</exclude-pattern>
|
||||
|
||||
<!-- Exclude the wporg parent theme (for this project) -->
|
||||
<exclude-pattern>/themes/pub/wporg</exclude-pattern>
|
||||
|
||||
<!-- Specifically include the plugins we're working on -->
|
||||
<include-pattern>/plugins/wporg-5ftf</include-pattern>
|
||||
|
||||
<!-- Show sniff codes in all reports -->
|
||||
<arg value="ps" />
|
||||
<arg name="colors" />
|
||||
|
||||
<!-- Scan all (php) files in the current folder and subfolders -->
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php" />
|
||||
|
||||
<rule ref="WordPress-Core">
|
||||
<!-- I don't see anything wrong with this :) -->
|
||||
<exclude name="Squiz.PHP.EmbeddedPhp.ContentAfterOpen" />
|
||||
<exclude name="Squiz.PHP.EmbeddedPhp.ContentBeforeEnd" />
|
||||
|
||||
<!-- I've never heard a compelling argument for this, and it clutters the directory listing with irrelevant noise. -->
|
||||
<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
|
||||
|
||||
<!-- It's often obvious what the placeholder is, so whether or not to include a comment is a judgement call. -->
|
||||
<exclude name="WordPress.WP.I18n.MissingTranslatorsComment" />
|
||||
|
||||
<!-- I know it's a language construct, but it just looks better using the function call syntax. -->
|
||||
<exclude name="PEAR.Files.IncludingFile.BracketsNotRequired" />
|
||||
|
||||
<!-- This requires passing a whitelist of prefixes in order to work, which is not practical for a large and varied codebase. It's also fixes a problem that we're unlikely to cause. -->
|
||||
<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound" />
|
||||
<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound" />
|
||||
<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound" />
|
||||
|
||||
<!-- Aligning things make the code more readable. `Generic.WhiteSpace.DisallowSpaceIndent` will catch accidental uses of all spaces. -->
|
||||
<exclude name="WordPress.WhiteSpace.PrecisionAlignment.Found" />
|
||||
<exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma" />
|
||||
<exclude name="WordPress.WhiteSpace.OperatorSpacing.SpacingBefore" />
|
||||
<exclude name="WordPress.Arrays.ArrayDeclarationSpacing.SpaceBeforeArrayCloser" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" />
|
||||
<exclude name="Squiz.Strings.ConcatenationSpacing.PaddingFound" />
|
||||
|
||||
<!-- There are cases where having multiple items on a single line is appropriate. e.g., a list of 100 currency codes. -->
|
||||
<exclude name="WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.CloseBracketLine" />
|
||||
<exclude name="PEAR.Functions.FunctionCallSignature.MultipleArguments" />
|
||||
|
||||
<!--
|
||||
... In multidimensional arrays, items in the child arrays should be aligned, but the parent arrays should
|
||||
... not be aligned, since they are not on neighboring lines.
|
||||
...
|
||||
... @todo This isn't working, see `WordCamp\Blocks\Sessions\get_attributes_schema()`.
|
||||
... @see https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1565
|
||||
-->
|
||||
<rule ref="WordPress.Arrays.MultipleStatementAlignment">
|
||||
<properties>
|
||||
<!-- Don't align multi-line items if ALL items in the array are multi-line. -->
|
||||
<property name="alignMultilineItems" value="!=100"/>
|
||||
<!-- Array assignment operator should always be on the same line as the array key. -->
|
||||
<property name="ignoreNewlines" value="false"/>
|
||||
</properties>
|
||||
</rule>
|
||||
|
||||
<!-- Warn about mis-aligned array items, but don't automatically "fix" them, because arrays in function calls get extra lines added.
|
||||
See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1305 -->
|
||||
<exclude phpcbf-only="true" name="PEAR.Functions.FunctionCallSignature" />
|
||||
|
||||
<!-- trigger_error() isn't only development function. In development environments it conveniently displays an error, but in
|
||||
(properly configured) production environment, it logs the error instead. -->
|
||||
<exclude name="WordPress.PHP.DevelopmentFunctions.error_log_trigger_error" />
|
||||
|
||||
<!-- print_r() is perfectly accepted in some circumstances, like WP_CLI commands. -->
|
||||
<exclude name="WordPress.PHP.DevelopmentFunctions.error_log_print_r" />
|
||||
</rule>
|
||||
|
||||
<rule ref="WordPress-Docs">
|
||||
<!-- If files/variables are given descriptive names like they should be, then an explicit description is usually unnecessary, so leave this as a judgement call. -->
|
||||
<exclude name="Squiz.Commenting.FunctionComment.MissingParamComment" />
|
||||
<exclude name="Squiz.Commenting.FileComment.Missing" />
|
||||
<exclude name="Squiz.Commenting.ClassComment.Missing" />
|
||||
<exclude name="Squiz.Commenting.FunctionComment.MissingParamTag" />
|
||||
<exclude name="Generic.Commenting.DocComment.MissingShort" />
|
||||
<exclude name="Squiz.Commenting.VariableComment.Missing" />
|
||||
<exclude name="Squiz.Commenting.VariableComment.MissingVar" />
|
||||
|
||||
<!-- I don't see how these are useful. -->
|
||||
<exclude name="Squiz.Commenting.FileComment.MissingPackageTag" />
|
||||
|
||||
<!-- We really only use basic exceptions, so this is kind of overkill and tedious. -->
|
||||
<exclude name="Squiz.Commenting.FunctionComment.EmptyThrows" />
|
||||
|
||||
<!-- Whitespace makes things more readable. -->
|
||||
<exclude name="Squiz.Commenting.FileComment.SpacingAfterOpen" />
|
||||
|
||||
<!-- There are some valid cases of this, like in identifying a closing tag from another file; e.g., in `themes/campsite-2017/footer.php`. -->
|
||||
<exclude name="Squiz.Commenting.InlineComment.SpacingAfter" />
|
||||
|
||||
<!-- It's not wrong for WordPress plugin file headers. -->
|
||||
<exclude name="Squiz.Commenting.FileComment.WrongStyle" />
|
||||
|
||||
<!-- Class comments are generally not useful, so they're left out, but then PHPCS confuses the plugin headers for a class comment -->
|
||||
<exclude name="Squiz.Commenting.ClassComment.WrongStyle" />
|
||||
<exclude name="Squiz.Commenting.ClassComment.SpacingAfter" />
|
||||
|
||||
<!-- WordPress have translators comment which requires no space after `//` -->
|
||||
<exclude name="Squiz.Commenting.InlineComment.NoSpaceBefore" />
|
||||
</rule>
|
||||
|
||||
<rule ref="WordPress-Extra">
|
||||
<!-- I think it's better to have all the `use` statements come right after the namespace line. -->
|
||||
<exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter" />
|
||||
</rule>
|
||||
|
||||
<!-- Verify that the text_domain is set to the desired text-domain. Multiple valid text domains can be
|
||||
provided as a comma-delimited list. -->
|
||||
<rule ref="WordPress.WP.I18n">
|
||||
<properties>
|
||||
<property name="text_domain" type="array" value="wporg-5ftf" />
|
||||
</properties>
|
||||
</rule>
|
||||
</ruleset>
|
Loading…
Reference in a new issue