Rule native_constant_invocation¶
Add leading \ before constant invocation of internal constant to speed up
resolving. Constant name match is case-sensitive, except for null, false
and true.
Warning¶
Using this rule is risky¶
Risky when any of the constants are namespaced or overridden.
Configuration¶
exclude¶
List of constants to ignore.
Allowed types: list<string>
Default value: ['null', 'false', 'true']
fix_built_in¶
Whether to fix constants returned by get_defined_constants. User constants
are not accounted in this list and must be specified in the include one.
Allowed types: bool
Default value: true
include¶
List of additional constants to fix.
Allowed types: list<string>
Default value: []
scope¶
Only fix constant invocations that are made within a namespace or fix all.
Allowed values: 'all' and 'namespaced'
Default value: 'all'
strict¶
Whether leading \ of constant invocation not meant to have it should be
removed.
Allowed types: bool
Default value: true
Examples¶
Example #1¶
Default configuration.
--- Original
+++ New
-<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);
+<?php var_dump(\PHP_VERSION, \M_PI, MY_CUSTOM_PI);
Example #2¶
With configuration: ['scope' => 'namespaced'].
--- Original
+++ New
<?php
namespace space1 {
- echo PHP_VERSION;
+ echo \PHP_VERSION;
}
namespace {
echo M_PI;
}
Example #3¶
With configuration: ['include' => ['MY_CUSTOM_PI']].
--- Original
+++ New
-<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);
+<?php var_dump(\PHP_VERSION, \M_PI, \MY_CUSTOM_PI);
Example #4¶
With configuration: ['fix_built_in' => false, 'include' => ['MY_CUSTOM_PI']].
--- Original
+++ New
-<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);
+<?php var_dump(PHP_VERSION, M_PI, \MY_CUSTOM_PI);
Example #5¶
With configuration: ['exclude' => ['M_PI']].
--- Original
+++ New
-<?php var_dump(PHP_VERSION, M_PI, MY_CUSTOM_PI);
+<?php var_dump(\PHP_VERSION, M_PI, MY_CUSTOM_PI);
Rule sets¶
The rule is part of the following rule sets:
@PhpCsFixer:risky with config:
['fix_built_in' => false, 'include' => ['DIRECTORY_SEPARATOR', 'PHP_INT_SIZE', 'PHP_SAPI', 'PHP_VERSION_ID'], 'scope' => 'namespaced', 'strict' => true]@Symfony:risky with config:
['strict' => false]
References¶
Fixer class: PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer
Test class: PhpCsFixer\Tests\Fixer\ConstantNotation\NativeConstantInvocationFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.