Skip to content

Commit e648c34

Browse files
committed
:octocat: +phpmd & phpcs
1 parent a72f5d0 commit e648c34

File tree

4 files changed

+239
-8
lines changed

4 files changed

+239
-8
lines changed

Diff for: .gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@
44
vendor/*
55
composer.lock
66
*cacert.pem
7+
phpcs.xml
8+
phpdoc.xml
9+
phpmd.xml
710
phpunit.xml

Diff for: composer.json

+10-8
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,25 @@
2828
"prefer-stable": true,
2929
"require": {
3030
"php": "^8.1",
31-
"ext-curl":"*",
32-
"ext-json":"*",
33-
"ext-simplexml":"*",
34-
"ext-zlib":"*",
31+
"ext-curl": "*",
32+
"ext-json": "*",
33+
"ext-simplexml": "*",
34+
"ext-zlib": "*",
3535
"chillerlan/php-http-message-utils": "dev-main#d1a5a12369a9075100beffe20af16976e3203be8",
3636
"chillerlan/php-settings-container": "^2.1.4 || ^3.1",
37-
"fig/http-message-util":"^1.1.5",
38-
"psr/http-client":"^1.0",
37+
"fig/http-message-util": "^1.1.5",
38+
"psr/http-client": "^1.0",
3939
"psr/http-message": "^1.1",
40-
"psr/http-factory":"^1.0",
40+
"psr/http-factory": "^1.0",
4141
"psr/http-server-handler": "^1.0",
4242
"psr/http-server-middleware": "^1.0",
4343
"psr/log": "^1.1 || ^2.0 || ^3.0"
4444
},
4545
"require-dev": {
4646
"phan/phan": "^5.4",
47-
"phpunit/phpunit": "^10.2"
47+
"phpmd/phpmd": "^2.13",
48+
"phpunit/phpunit": "^10.2",
49+
"squizlabs/php_codesniffer": "^3.7"
4850
},
4951
"autoload": {
5052
"psr-4": {

Diff for: phpcs.xml.dist

+190
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
<?xml version="1.0"?>
2+
<ruleset name="php-httpinterface"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:noNamespaceSchemaLocation="vendor/squizlabs/php_codesniffer/phpcs.xsd">
5+
<description>php-httpinterface rules for phpcs</description>
6+
7+
<file>examples</file>
8+
<file>src</file>
9+
<file>tests</file>
10+
11+
<arg name="basepath" value="."/>
12+
<arg name="tab-width" value="4"/>
13+
14+
<rule ref="Internal.Tokenizer.Exception">
15+
<type>error</type>
16+
</rule>
17+
18+
19+
<rule ref="Generic">
20+
<exclude name="Generic.Arrays.DisallowShortArraySyntax" />
21+
<exclude name="Generic.CodeAnalysis.EmptyStatement" />
22+
<exclude name="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
23+
<exclude name="Generic.CodeAnalysis.UnusedFunctionParameter" />
24+
<exclude name="Generic.Commenting.Todo" />
25+
<exclude name="Generic.ControlStructures.InlineControlStructure" />
26+
<exclude name="Generic.Debug" />
27+
<exclude name="Generic.Files.EndFileNoNewline" />
28+
<exclude name="Generic.Files.LowercasedFilename" />
29+
<exclude name="Generic.Formatting.SpaceBeforeCast" />
30+
<exclude name="Generic.Functions.OpeningFunctionBraceBsdAllman" />
31+
<exclude name="Generic.NamingConventions.AbstractClassNamePrefix" />
32+
<exclude name="Generic.NamingConventions.CamelCapsFunctionName" />
33+
<exclude name="Generic.PHP.ClosingPHPTag" />
34+
<exclude name="Generic.PHP.RequireStrictTypes" />
35+
<exclude name="Generic.PHP.UpperCaseConstant" />
36+
<exclude name="Generic.VersionControl" />
37+
<exclude name="Generic.WhiteSpace.DisallowTabIndent" />
38+
<exclude name="Generic." />
39+
</rule>
40+
41+
<rule ref="Generic.ControlStructures.InlineControlStructure">
42+
<properties>
43+
<property name="error" value="true"/>
44+
</properties>
45+
</rule>
46+
47+
<rule ref="Generic.Files.LineLength">
48+
<properties>
49+
<property name="lineLimit" value="130" />
50+
<property name="absoluteLineLimit" value="160" />
51+
<property name="ignoreComments" value="true" />
52+
</properties>
53+
</rule>
54+
55+
<rule ref="Generic.PHP.ForbiddenFunctions">
56+
<properties>
57+
<property name="forbiddenFunctions" type="array">
58+
<element key="die" value="exit"/>
59+
<element key="sizeof" value="count"/>
60+
<element key="delete" value="unset"/>
61+
<element key="print" value="echo"/>
62+
<element key="is_null" value="null"/>
63+
<element key="create_function" value="null"/>
64+
</property>
65+
</properties>
66+
</rule>
67+
68+
<rule ref="Generic.Formatting.SpaceAfterCast">
69+
<properties>
70+
<property name="spacing" value="0" />
71+
</properties>
72+
</rule>
73+
74+
<rule ref="Generic.Formatting.SpaceAfterNot">
75+
<properties>
76+
<property name="spacing" value="0" />
77+
</properties>
78+
</rule>
79+
80+
<rule ref="Generic.WhiteSpace.ScopeIndent">
81+
<properties>
82+
<property name="tabIndent" value="true" />
83+
</properties>
84+
</rule>
85+
86+
87+
<rule ref="PEAR">
88+
<exclude name="PEAR.Classes" />
89+
<exclude name="PEAR.Commenting" />
90+
<exclude name="PEAR.ControlStructures" />
91+
<exclude name="PEAR.Functions.FunctionCallSignature" />
92+
<exclude name="PEAR.Functions.FunctionDeclaration" />
93+
<exclude name="PEAR.NamingConventions" />
94+
<exclude name="PEAR.WhiteSpace.ScopeIndent" />
95+
</rule>
96+
97+
<rule ref="PEAR.Commenting.FunctionComment">
98+
<properties>
99+
<property name="minimumVisibility" value="public" />
100+
</properties>
101+
</rule>
102+
103+
104+
<rule ref="PSR2">
105+
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps" />
106+
107+
<exclude name="PSR2.Classes.ClassDeclaration" />
108+
<exclude name="PSR2.ControlStructures.ControlStructureSpacing" />
109+
<exclude name="PSR2.ControlStructures.SwitchDeclaration" />
110+
<exclude name="PSR2.Methods.FunctionClosingBrace" />
111+
<exclude name="PSR2.Namespaces.UseDeclaration.MultipleDeclarations" />
112+
</rule>
113+
114+
<rule ref="PSR2.Methods.MethodDeclaration.Underscore">
115+
<type>error</type>
116+
</rule>
117+
118+
<rule ref="PSR2.Classes.PropertyDeclaration.Underscore">
119+
<type>error</type>
120+
</rule>
121+
122+
123+
<rule ref="PSR12">
124+
<exclude name="PSR12.Classes.ClassInstantiation" />
125+
<exclude name="PSR12.Classes.OpeningBraceSpace" />
126+
<exclude name="PSR12.ControlStructures" />
127+
<exclude name="PSR12.Files.FileHeader.SpacingInsideBlock" />
128+
<exclude name="PSR12.Files.FileHeader.SpacingAfterBlock" />
129+
<exclude name="PSR12.Functions.ReturnTypeDeclaration" />
130+
<exclude name="PSR12.Operators.OperatorSpacing" />
131+
<exclude name="PSR12.Traits.UseDeclaration.MultipleImport" />
132+
</rule>
133+
134+
<rule ref="PSR12.Namespaces.CompoundNamespaceDepth">
135+
<properties>
136+
<property name="maxDepth" value="1" />
137+
</properties>
138+
</rule>
139+
140+
<rule ref="Squiz">
141+
<exclude name="Squiz.Arrays.ArrayDeclaration.IndexNoNewline" />
142+
<exclude name="Squiz.Arrays.ArrayDeclaration.MultiLineNotAllowed" />
143+
<exclude name="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed" />
144+
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline" />
145+
<exclude name="Squiz.Classes.ClassDeclaration" />
146+
<exclude name="Squiz.Commenting" />
147+
<exclude name="Squiz.ControlStructures.ControlSignature" />
148+
<exclude name="Squiz.ControlStructures.ElseIfDeclaration" />
149+
<exclude name="Squiz.ControlStructures.InlineIfDeclaration.NotSingleLine" />
150+
<exclude name="Squiz.ControlStructures.SwitchDeclaration" />
151+
<exclude name="Squiz.Files" />
152+
<exclude name="Squiz.Functions" />
153+
<exclude name="Squiz.NamingConventions.ValidVariableName.NotCamelCaps" />
154+
<exclude name="Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps" />
155+
<exclude name="Squiz.NamingConventions.ValidFunctionName.ScopeNotCamelCaps" />
156+
<exclude name="Squiz.Objects.ObjectInstantiation.NotAssigned" />
157+
<exclude name="Squiz.Operators.ComparisonOperatorUsage" />
158+
<exclude name="Squiz.PHP.CommentedOutCode" />
159+
<exclude name="Squiz.PHP.DisallowBooleanStatement" />
160+
<exclude name="Squiz.PHP.DisallowComparisonAssignment" />
161+
<exclude name="Squiz.PHP.DisallowInlineIf" />
162+
<exclude name="Squiz.PHP.EmbeddedPhp" />
163+
<exclude name="Squiz.Strings.ConcatenationSpacing" />
164+
<exclude name="Squiz.WhiteSpace" />
165+
</rule>
166+
167+
<rule ref="Squiz.Commenting.EmptyCatchComment" />
168+
169+
<!-- exclude some checks for the examples-->
170+
<rule ref="PSR1.Classes.ClassDeclaration.MissingNamespace">
171+
<exclude-pattern>examples</exclude-pattern>
172+
</rule>
173+
174+
<rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses">
175+
<exclude-pattern>examples</exclude-pattern>
176+
</rule>
177+
178+
<rule ref="PSR1.Files.SideEffects.FoundWithSymbols">
179+
<exclude-pattern>examples</exclude-pattern>
180+
</rule>
181+
182+
<rule ref="Squiz.Classes.ClassFileName.NoMatch">
183+
<exclude-pattern>examples</exclude-pattern>
184+
</rule>
185+
186+
<rule ref="Squiz.PHP.DiscouragedFunctions.Discouraged">
187+
<exclude-pattern>examples</exclude-pattern>
188+
</rule>
189+
190+
</ruleset>

Diff for: phpmd.xml.dist

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0"?>
2+
<!-- https://github.com/phpmd/phpmd_-->
3+
<ruleset name="php-httpinterface PMD ruleset"
4+
xmlns="http://pmd.sf.net/ruleset/1.0.0"
5+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6+
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
7+
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
8+
<description>codemasher/php-httpinterface PMD ruleset</description>
9+
<exclude-pattern>*/examples/*</exclude-pattern>
10+
<exclude-pattern>*/vendor/*</exclude-pattern>
11+
<exclude-pattern>*/tests/*</exclude-pattern>
12+
<rule ref="rulesets/cleancode.xml">
13+
<exclude name="ElseExpression"/>
14+
<exclude name="StaticAccess"/>
15+
</rule>
16+
<rule ref="rulesets/codesize.xml"/>
17+
<rule ref="rulesets/controversial.xml">
18+
<exclude name="Superglobals"/>
19+
<exclude name="CamelCaseMethodName"/>
20+
<exclude name="CamelCaseParameterName"/>
21+
<exclude name="CamelCasePropertyName"/>
22+
<exclude name="CamelCaseVariableName"/>
23+
</rule>
24+
<rule ref="rulesets/design.xml">
25+
<!-- exits are only used in examples -->
26+
<exclude name="ExitExpression"/>
27+
</rule>
28+
<rule ref="rulesets/naming.xml">
29+
<exclude name="LongVariable"/>
30+
<exclude name="ShortVariable"/>
31+
<exclude name="ConstantNamingConventions"/>
32+
</rule>
33+
<rule ref="rulesets/unusedcode.xml">
34+
<exclude name="UnusedFormalParameter"/>
35+
</rule>
36+
</ruleset>

0 commit comments

Comments
 (0)