From 82affd515433da6e9dc0a5d84c1e75af6911e78f Mon Sep 17 00:00:00 2001 From: Wes Hulette <jwhulette@gmail.com> Date: Wed, 26 Sep 2018 15:10:11 -0400 Subject: [PATCH] Added PHP_CS & PHPMD files (#6234) Added PHP_CS & PHP mess detector file to help with code standardization. --- .php_cs.dist | 39 +++++++++++++++++++++++++++++++++++++ phpmd.xml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 .php_cs.dist create mode 100644 phpmd.xml diff --git a/.php_cs.dist b/.php_cs.dist new file mode 100644 index 000000000..87846540f --- /dev/null +++ b/.php_cs.dist @@ -0,0 +1,39 @@ +<?php + +ini_set('memory_limit', '1024M'); + +$finder = PhpCsFixer\Finder::create() + ->notPath('bootstrap/cache') + ->notPath('storage') + ->notPath('vendor') + ->notPath('node_modules') + ->in(__DIR__) + ->name('*.php') + ->notName('*.blade.php') + ->ignoreDotFiles(true) + ->ignoreVCS(true) +; + +return PhpCsFixer\Config::create() + ->setRules(array( + '@Symfony' => true, + 'class_definition' => [ + 'multiLineExtendsEachSingleLine' => true, + ], + 'ordered_class_elements' => [ + 'use_trait', 'constant_public', 'constant_protected', 'constant_private', + 'property_public', 'property_protected', 'property_private', 'construct', + 'destruct', 'magic', 'phpunit', 'method_public', 'method_protected', + 'method_private' + ], + 'function_declaration' => ['closure_function_spacing' => 'none'], + 'binary_operator_spaces' => ['default' => 'align_single_space_minimal'], + 'array_syntax' => ['syntax' => 'short'], + 'concat_space' => ['spacing' => 'one'], + 'blank_line_after_namespace' => true, + 'linebreak_after_opening_tag' => true, + 'not_operator_with_successor_space' => true, + 'ordered_imports' => true, + 'phpdoc_order' => true, + )) + ->setFinder($finder); diff --git a/phpmd.xml b/phpmd.xml new file mode 100644 index 000000000..d991b90fb --- /dev/null +++ b/phpmd.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ruleset name="Laravel and similar phpmd ruleset" + xmlns="http://pmd.sf.net/ruleset/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" + xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"> + <description> + Inspired by https://github.com/phpmd/phpmd/issues/137 + using http://phpmd.org/documentation/creating-a-ruleset.html + </description> + <!-- se importan los rulesets, en este caso todos. --> + <rule ref="rulesets/cleancode.xml"> + <exclude name="StaticAccess"/> + </rule> + <rule ref="rulesets/codesize.xml/CyclomaticComplexity"/> + <rule ref="rulesets/codesize.xml/NPathComplexity"/> + <rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/> + <rule ref="rulesets/codesize.xml/ExcessiveClassLength"/> + <rule ref="rulesets/codesize.xml/ExcessiveParameterList"/> + <rule ref="rulesets/codesize.xml/ExcessivePublicCount"/> + <rule ref="rulesets/codesize.xml/TooManyFields"/> + <rule ref="rulesets/codesize.xml/TooManyMethods"> + <properties> + <property name="maxmethods" value="30"/> + </properties> + </rule> + <rule ref="rulesets/codesize.xml/ExcessiveClassComplexity"/> + <rule ref="rulesets/controversial.xml"/> + <rule ref="rulesets/design.xml"> + <exclude name="CouplingBetweenObjects"/> + </rule> + <!-- beware the façades yo. --> + <rule ref="rulesets/design.xml/CouplingBetweenObjects"> + <properties> + <property name="minimum" value="20"/> + </properties> + </rule> + <!-- se importa naming y se excluye ShortVariable para ser ajustada despues. --> + <rule ref="rulesets/naming.xml"> + <exclude name="ShortVariable"/> + </rule> + <rule ref="rulesets/naming.xml/ShortVariable" + since="0.2" + message="Avoid variables with short names like {0}. Configured minimum length is {1}." + class="PHPMD\Rule\Naming\ShortVariable" + externalInfoUrl="http://phpmd.org/rules/naming.html#shortvariable"> + <priority>3</priority> + <properties> + <property name="minimum" description="Minimum length for a variable, property or parameter name" value="3"/> + <property name="exceptions" value="id,q,w,i,j,v,e,f,fp" /> + </properties> + </rule> + <rule ref="rulesets/unusedcode.xml"/> +</ruleset> \ No newline at end of file -- GitLab