Skip to content

Commit bd92a00

Browse files
authored
Merge pull request #1 from flemeur/php-8
PHP 8 support and PSR-4 compliance
2 parents cf6f059 + 40d92e2 commit bd92a00

File tree

9 files changed

+201
-41
lines changed

9 files changed

+201
-41
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ build/
44
coverage
55
composer.lock
66
.idea
7+
.phpunit.result.cache

.travis.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
language: php
22

33
php:
4-
- 7.1
5-
- 7.2
4+
- 7.3
5+
- 7.4
6+
- 8.0
67

78
before_script:
89
- travis_retry composer self-update

composer.json

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
"description": "Store and access contextual request data with ease",
44
"type": "library",
55
"require-dev": {
6-
"phpunit/phpunit": "^6",
7-
"orchestra/testbench": "~3.5.5"
6+
"phpunit/phpunit": "^9.0",
7+
"orchestra/testbench": "^6.19",
8+
"squizlabs/php_codesniffer": "^3.6"
89
},
910
"license": "MIT",
1011
"authors": [
@@ -17,17 +18,21 @@
1718
],
1819
"minimum-stability": "stable",
1920
"require": {
20-
"php": "^7.1"
21+
"php": "^7.3|^8.0"
2122
},
2223
"autoload": {
2324
"psr-4": {
24-
"Scuttlebyte\\ContextManager\\": "src/",
25-
"Scuttlebyte\\ContextManager\\Tests\\": "tests/"
25+
"Scuttlebyte\\ContextManager\\": "src/"
2626
},
2727
"files": [
2828
"src/helpers.php"
2929
]
3030
},
31+
"autoload-dev": {
32+
"psr-4": {
33+
"Tests\\": "tests/"
34+
}
35+
},
3136
"scripts": {
3237
"test": "vendor/bin/phpunit",
3338
"test-coverage": "vendor/bin/phpunit --coverage-html coverage"

phpcs.xml

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
<?xml version="1.0"?>
2+
<ruleset name="Laravel Standards">
3+
<description>PSR-2 The Laravel conventions</description>
4+
<rule ref="Generic.Classes.DuplicateClassName">
5+
<exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedIf"/>
6+
</rule>
7+
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
8+
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
9+
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
10+
<rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
11+
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
12+
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
13+
<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter">
14+
<exclude-pattern>/app/Http/Resources/*\.php</exclude-pattern>
15+
</rule>
16+
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
17+
<rule ref="Generic.Commenting.DocComment">
18+
<exclude name="Generic.Commenting.DocComment.TagValueIndent"/>
19+
<exclude name="Generic.Commenting.DocComment.NonParamGroup"/>
20+
</rule>
21+
<rule ref="Generic.ControlStructures.InlineControlStructure"/>
22+
<rule ref="Generic.Files.ByteOrderMark"/>
23+
<rule ref="Generic.Files.LineEndings">
24+
<exclude name="Generic.Files.LineEndings.InvalidEOLChar"/>
25+
</rule>
26+
<rule ref="Generic.Formatting.DisallowMultipleStatements"/>
27+
<rule ref="Generic.Formatting.SpaceAfterCast"/>
28+
<rule ref="Generic.Functions.CallTimePassByReference"/>
29+
<rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
30+
<rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
31+
<rule ref="Generic.Metrics.CyclomaticComplexity">
32+
<properties>
33+
<property name="complexity" value="10"/>
34+
<property name="absoluteComplexity" value="15"/>
35+
</properties>
36+
</rule>
37+
<rule ref="Generic.Metrics.NestingLevel">
38+
<properties>
39+
<property name="nestingLevel" value="5"/>
40+
<property name="absoluteNestingLevel" value="5"/>
41+
</properties>
42+
</rule>
43+
<rule ref="Generic.NamingConventions.ConstructorName"/>
44+
<rule ref="Generic.PHP.LowerCaseConstant"/>
45+
<rule ref="Generic.PHP.DeprecatedFunctions"/>
46+
<rule ref="Generic.PHP.DisallowShortOpenTag"/>
47+
<rule ref="Generic.PHP.ForbiddenFunctions"/>
48+
<rule ref="Generic.PHP.NoSilencedErrors"/>
49+
<rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
50+
<rule ref="Generic.WhiteSpace.ScopeIndent">
51+
<properties>
52+
<property name="indent" value="4"/>
53+
<property name="tabIndent" value="true"/>
54+
</properties>
55+
</rule>
56+
<rule ref="MySource.PHP.EvalObjectFactory"/>
57+
<rule ref="PSR1.Classes.ClassDeclaration"/>
58+
<rule ref="PSR1.Files.SideEffects"/>
59+
<rule ref="PSR2.Classes.ClassDeclaration"/>
60+
<rule ref="PSR2.Classes.PropertyDeclaration"/>
61+
<rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
62+
<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
63+
<rule ref="PSR2.ControlStructures.SwitchDeclaration"/>
64+
<rule ref="PSR2.Files.EndFileNewline"/>
65+
<rule ref="PSR2.Methods.MethodDeclaration"/>
66+
<rule ref="PSR2.Namespaces.NamespaceDeclaration"/>
67+
<rule ref="PSR2.Namespaces.UseDeclaration"/>
68+
<rule ref="PSR1">
69+
<exclude-pattern>*.php</exclude-pattern>
70+
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
71+
72+
<exclude-pattern>database/*</exclude-pattern>
73+
</rule>
74+
<rule ref="PSR2">
75+
<exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE" />
76+
<properties>
77+
<property name="lineLimit" value="130"/>
78+
<property name="absoluteLineLimit" value="135"/>
79+
</properties>
80+
</rule>
81+
<rule ref="Squiz.Arrays.ArrayDeclaration">
82+
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" />
83+
<exclude name="Squiz.Arrays.ArrayDeclaration.KeyNotAligned" />
84+
<exclude name="Squiz.Arrays.ArrayDeclaration.DoubleArrowNotAligned" />
85+
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNotAligned" />
86+
<exclude name="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned" />
87+
<exclude name="Squiz.Arrays.ArrayDeclaration.ValueNoNewline" />
88+
<exclude name="Squiz.Arrays.ArrayDeclaration.MultiLineNotAllowed" />
89+
<exclude name="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed" />
90+
<exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace" />
91+
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified" />
92+
<exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified" />
93+
</rule>
94+
<rule ref="Squiz.PHP.CommentedOutCode"/>
95+
<rule ref="Squiz.PHP.DisallowSizeFunctionsInLoops"/>
96+
<rule ref="Squiz.PHP.DiscouragedFunctions">
97+
<properties>
98+
<property name="error" value="true"/>
99+
</properties>
100+
</rule>
101+
<rule ref="Squiz.PHP.Eval"/>
102+
<rule ref="Squiz.PHP.GlobalKeyword"/>
103+
<rule ref="Squiz.PHP.Heredoc"/>
104+
<rule ref="Squiz.PHP.LowercasePHPFunctions"/>
105+
<rule ref="Squiz.PHP.NonExecutableCode"/>
106+
<rule ref="Squiz.Scope.MemberVarScope"/>
107+
<rule ref="Squiz.Scope.MethodScope"/>
108+
<rule ref="Squiz.Scope.StaticThisUsage"/>
109+
<rule ref="Squiz.WhiteSpace.CastSpacing"/>
110+
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing"/>
111+
<rule ref="Squiz.WhiteSpace.LanguageConstructSpacing"/>
112+
<rule ref="Squiz.WhiteSpace.LogicalOperatorSpacing"/>
113+
<rule ref="Squiz.WhiteSpace.ObjectOperatorSpacing">
114+
<properties>
115+
<property name="ignoreNewlines" value="true"/>
116+
</properties>
117+
</rule>
118+
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
119+
<properties>
120+
<property name="ignoreNewlines" value="true"/>
121+
</properties>
122+
</rule>
123+
<rule ref="Squiz.WhiteSpace.PropertyLabelSpacing"/>
124+
<rule ref="Squiz.WhiteSpace.ScopeClosingBrace"/>
125+
<rule ref="Squiz.WhiteSpace.ScopeKeywordSpacing"/>
126+
<rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
127+
<rule ref="Zend.Files.ClosingTag"/>
128+
129+
<file>app</file>
130+
<file>config</file>
131+
<file>public</file>
132+
<file>resources</file>
133+
<file>routes</file>
134+
<file>tests</file>
135+
136+
<exclude-pattern>*/.phpstorm.meta.php</exclude-pattern>
137+
<exclude-pattern>*/_ide_helper.php</exclude-pattern>
138+
<exclude-pattern>*/database/*</exclude-pattern>
139+
<exclude-pattern>*/cache/*</exclude-pattern>
140+
<exclude-pattern>*/*.js</exclude-pattern>
141+
<exclude-pattern>*/*.css</exclude-pattern>
142+
<exclude-pattern>*/*.xml</exclude-pattern>
143+
<exclude-pattern>*/*.blade.php</exclude-pattern>
144+
<exclude-pattern>*/autoload.php</exclude-pattern>
145+
<exclude-pattern>*/storage/*</exclude-pattern>
146+
<exclude-pattern>*/docs/*</exclude-pattern>
147+
<exclude-pattern>*/vendor/*</exclude-pattern>
148+
<exclude-pattern>*/migrations/*</exclude-pattern>
149+
<exclude-pattern>*/config/*</exclude-pattern>
150+
<exclude-pattern>*/public/index.php</exclude-pattern>
151+
<exclude-pattern>*/*.blade.php</exclude-pattern>
152+
<exclude-pattern>*/Console/Kernel.php</exclude-pattern>
153+
<exclude-pattern>*/Exceptions/Handler.php</exclude-pattern>
154+
<exclude-pattern>*/Http/Kernel.php</exclude-pattern>
155+
<exclude-pattern>*/Providers/*</exclude-pattern>
156+
<exclude-pattern>*/resources/lang/*</exclude-pattern>
157+
158+
<arg name="colors"/>
159+
<ini name="memory_limit" value="128M"/>
160+
</ruleset>

phpunit.xml.dist

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,21 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<phpunit bootstrap="vendor/autoload.php"
3-
backupGlobals="false"
4-
backupStaticAttributes="false"
5-
colors="true"
6-
verbose="true"
7-
convertErrorsToExceptions="true"
8-
convertNoticesToExceptions="true"
9-
convertWarningsToExceptions="true"
10-
processIsolation="false"
11-
stopOnFailure="false">
12-
<testsuites>
13-
<testsuite name="Test Suite">
14-
<directory>tests</directory>
15-
</testsuite>
16-
</testsuites>
17-
<filter>
18-
<whitelist>
19-
<directory suffix=".php">src/</directory>
20-
</whitelist>
21-
</filter>
22-
<logging>
23-
<log type="tap" target="build/report.tap"/>
24-
<log type="junit" target="build/report.junit.xml"/>
25-
<log type="coverage-html" target="build/coverage"/>
26-
<log type="coverage-text" target="build/coverage.txt"/>
27-
<log type="coverage-clover" target="build/logs/clover.xml"/>
28-
</logging>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="vendor/autoload.php" backupGlobals="false" backupStaticAttributes="false" colors="true" verbose="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
3+
<coverage>
4+
<include>
5+
<directory suffix=".php">src/</directory>
6+
</include>
7+
<report>
8+
<clover outputFile="build/logs/clover.xml"/>
9+
<html outputDirectory="build/coverage"/>
10+
<text outputFile="build/coverage.txt"/>
11+
</report>
12+
</coverage>
13+
<testsuites>
14+
<testsuite name="Test Suite">
15+
<directory>tests</directory>
16+
</testsuite>
17+
</testsuites>
18+
<logging>
19+
<junit outputFile="build/report.junit.xml"/>
20+
</logging>
2921
</phpunit>

tests/Scuttlebyte/ContextManagerTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Scuttlebyte\ContextManager\Tests;
3+
namespace Tests\Scuttlebyte;
44

55
use PHPUnit\Framework\TestCase;
66
use Scuttlebyte\ContextManager\ContextManager;
@@ -9,10 +9,11 @@ class ContextManagerTest extends TestCase
99
{
1010
/**
1111
* @test
12-
* @expectedException \Scuttlebyte\ContextManager\Exception\UnregisteredContextException
1312
*/
1413
public function throws_exceptions_when_a_context_has_not_been_registered()
1514
{
15+
$this->expectException(\Scuttlebyte\ContextManager\Exception\UnregisteredContextException::class);
16+
1617
$sut = new ContextManager();
1718

1819
$sut->put('Woody', "There's a snake in my boots!");

tests/Scuttlebyte/Laravel/HelpersTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<?php
22

3-
namespace Scuttlebyte\ContextManager\Tests\Scuttlebyte\Laravel;
3+
namespace Tests\Scuttlebyte\Laravel;
44

55
use Scuttlebyte\ContextManager\ContextManager;
66
use Scuttlebyte\ContextManager\Laravel\Facade;
7-
use Scuttlebyte\ContextManager\Tests\TestCase;
7+
use Tests\TestCase;
88

99
class HelpersTest extends TestCase
1010
{

tests/Scuttlebyte/Laravel/ServiceProviderTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?php
22

3-
namespace Scuttlebyte\ContextManager\Tests\Scuttlebyte\Laravel;
3+
namespace Tests\Scuttlebyte\Laravel;
44

55
use Scuttlebyte\ContextManager\ContextManager;
6-
use Scuttlebyte\ContextManager\Tests\TestCase;
6+
use Tests\TestCase;
77

88
class ServiceProviderTest extends TestCase
99
{

tests/TestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Scuttlebyte\ContextManager\Tests;
3+
namespace Tests;
44

55
use Scuttlebyte\ContextManager\Laravel\ServiceProvider;
66

0 commit comments

Comments
 (0)