Skip to content
This repository was archived by the owner on Nov 21, 2019. It is now read-only.

Commit 80dd646

Browse files
Use statements must be used (#14)
* Use statements must be used * Use namespaced reference * Update minimum slevomat/coding-standard * Heh, had missed one
1 parent 882fe25 commit 80dd646

File tree

7 files changed

+92
-3
lines changed

7 files changed

+92
-3
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"require": {
1717
"php": "^7.2",
1818
"dealerdirect/phpcodesniffer-composer-installer": "^0.4",
19-
"slevomat/coding-standard": "^4.6.1",
19+
"slevomat/coding-standard": "^4.8",
2020
"squizlabs/php_codesniffer": "^3.3.2"
2121
},
2222
"require-dev": {

src/Libero/ruleset.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,15 @@
2626
<property name="psr12Compatible" value="true"/>
2727
</properties>
2828
</rule>
29+
<rule ref="SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly">
30+
<properties>
31+
<property name="allowFallbackGlobalConstants" value="false"/>
32+
<property name="allowFallbackGlobalFunctions" value="false"/>
33+
</properties>
34+
</rule>
2935
<rule ref="SlevomatCodingStandard.Namespaces.UnusedUses"/>
3036
<rule ref="SlevomatCodingStandard.Namespaces.UseDoesNotStartWithBackslash"/>
37+
<rule ref="SlevomatCodingStandard.Namespaces.UseFromSameNamespace"/>
3138
<rule ref="SlevomatCodingStandard.Namespaces.UseSpacing"/>
3239
<rule ref="SlevomatCodingStandard.TypeHints.DeclareStrictTypes">
3340
<properties>

tests/RulesetTests.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use function implode;
2222
use function ini_get;
2323
use function mb_convert_encoding;
24+
use function mb_detect_encoding;
2425
use function preg_match_all;
2526
use function preg_replace;
2627
use function sort;

tests/cases/php/global-fallbacks

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---DESCRIPTION---
2+
No global fallbacks
3+
---CONTENTS---
4+
<?php
5+
6+
declare(strict_types=1);
7+
8+
namespace Vendor;
9+
10+
date(DATE_ATOM);
11+
12+
---FIXED---
13+
<?php
14+
15+
declare(strict_types=1);
16+
17+
namespace Vendor;
18+
19+
use function date;
20+
use const DATE_ATOM;
21+
22+
date(DATE_ATOM);
23+
24+
---
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---DESCRIPTION---
2+
Use statements must be used
3+
---CONTENTS---
4+
<?php
5+
6+
declare(strict_types=1);
7+
8+
namespace Vendor;
9+
10+
new \Foo(\bar(\BAZ));
11+
new \Qux\Quux(\Qux\quuz(\Qux\CORGE));
12+
new \Vendor\Grault(\Vendor\garply(\Vendor\WALDO));
13+
14+
---FIXED---
15+
<?php
16+
17+
declare(strict_types=1);
18+
19+
namespace Vendor;
20+
21+
use Foo;
22+
use Qux\Quux;
23+
use function bar;
24+
use function Qux\quuz;
25+
use const BAZ;
26+
use const Qux\CORGE;
27+
28+
new Foo(bar(BAZ));
29+
new Quux(quuz(CORGE));
30+
new Grault(garply(WALDO));
31+
32+
---

tests/cases/php/use-useless

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---DESCRIPTION---
2+
Use statements must not be from the same namespace
3+
---CONTENTS---
4+
<?php
5+
6+
declare(strict_types=1);
7+
8+
namespace Foo;
9+
10+
use Foo\Bar;
11+
use function Foo\baz;
12+
use const Foo\QUX;
13+
14+
new Bar(baz(QUX));
15+
16+
---FIXED---
17+
<?php
18+
19+
declare(strict_types=1);
20+
21+
namespace Foo;
22+
23+
new Bar(baz(QUX));
24+
25+
---

tests/cases/whitespace/use-namespace

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ Use declarations must go after the namespace declaration
55

66
declare(strict_types=1);
77

8-
use Foo;
8+
use Foo\Bar;
99

1010
namespace Vendor;
1111

12-
new Foo();
12+
new Bar();
1313

1414
---MESSAGES---
1515
5:1 PSR2.Namespaces.UseDeclaration.UseBeforeNamespace

0 commit comments

Comments
 (0)