Fork me on GitHub
a Sensio Labs Product

15 Keys Accelerate (v3.54.0) edition

Rule global_namespace_import

Imports or fully qualifies global classes/functions/constants.

Configuration

import_classes

Whether to import, not import or ignore global classes.

Allowed values: false, null and true

Default value: true

import_constants

Whether to import, not import or ignore global constants.

Allowed values: false, null and true

Default value: null

import_functions

Whether to import, not import or ignore global functions.

Allowed values: false, null and true

Default value: null

Examples

Example #1

Default configuration.

--- Original
+++ New
 <?php

 namespace Foo;
+use DateTimeImmutable;

-$d = new \DateTimeImmutable();
+$d = new DateTimeImmutable();

Example #2

With configuration: ['import_classes' => true, 'import_constants' => true, 'import_functions' => true].

--- Original
+++ New
 <?php

 namespace Foo;
+use DateTimeImmutable;
+use function count;
+use const M_PI;

-if (\count($x)) {
-    /** @var \DateTimeImmutable $d */
-    $d = new \DateTimeImmutable();
-    $p = \M_PI;
+if (count($x)) {
+    /** @var DateTimeImmutable $d */
+    $d = new DateTimeImmutable();
+    $p = M_PI;
 }

Example #3

With configuration: ['import_classes' => false, 'import_constants' => false, 'import_functions' => false].

--- Original
+++ New
 <?php

 namespace Foo;

 use DateTimeImmutable;
 use function count;
 use const M_PI;

-if (count($x)) {
-    /** @var DateTimeImmutable $d */
-    $d = new DateTimeImmutable();
-    $p = M_PI;
+if (\count($x)) {
+    /** @var \DateTimeImmutable $d */
+    $d = new \DateTimeImmutable();
+    $p = \M_PI;
 }

Rule sets

The rule is part of the following rule sets:

  • @PhpCsFixer with config:

    ['import_classes' => false, 'import_constants' => false, 'import_functions' => false]

  • @Symfony with config:

    ['import_classes' => false, 'import_constants' => false, 'import_functions' => false]

References

The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.