Rule native_function_invocation
¶
Add leading \
before function invocation to speed up resolving.
Warning¶
Using this rule is risky¶
Risky when any of the functions are overridden.
Configuration¶
exclude
¶
List of functions to ignore.
Allowed types: list<string>
Default value: []
include
¶
List of function names or sets to fix. Defined sets are @internal
(all
native functions), @all
(all global functions) and @compiler_optimized
(functions that are specially optimized by Zend).
Allowed types: list<string>
Default value: ['@compiler_optimized']
scope
¶
Only fix function calls that are made within a namespace or fix all.
Allowed values: 'all'
and 'namespaced'
Default value: 'all'
strict
¶
Whether leading \
of function call not meant to have it should be removed.
Allowed types: bool
Default value: true
Examples¶
Example #1¶
Default configuration.
--- Original
+++ New
<?php
function baz($options)
{
- if (!array_key_exists("foo", $options)) {
+ if (!\array_key_exists("foo", $options)) {
throw new \InvalidArgumentException();
}
return json_encode($options);
}
Example #2¶
With configuration: ['exclude' => ['json_encode']]
.
--- Original
+++ New
<?php
function baz($options)
{
- if (!array_key_exists("foo", $options)) {
+ if (!\array_key_exists("foo", $options)) {
throw new \InvalidArgumentException();
}
return json_encode($options);
}
Example #3¶
With configuration: ['scope' => 'all']
.
--- Original
+++ New
<?php
namespace space1 {
- echo count([1]);
+ echo \count([1]);
}
namespace {
- echo count([1]);
+ echo \count([1]);
}
Example #4¶
With configuration: ['scope' => 'namespaced']
.
--- Original
+++ New
<?php
namespace space1 {
- echo count([1]);
+ echo \count([1]);
}
namespace {
echo count([1]);
}
Example #5¶
With configuration: ['include' => ['myGlobalFunction']]
.
--- Original
+++ New
<?php
-myGlobalFunction();
+\myGlobalFunction();
count();
Example #6¶
With configuration: ['include' => ['@all']]
.
--- Original
+++ New
<?php
-myGlobalFunction();
-count();
+\myGlobalFunction();
+\count();
Example #7¶
With configuration: ['include' => ['@internal']]
.
--- Original
+++ New
<?php
myGlobalFunction();
-count();
+\count();
Example #8¶
With configuration: ['include' => ['@compiler_optimized']]
.
--- Original
+++ New
<?php
$a .= str_repeat($a, 4);
-$c = get_class($d);
+$c = \get_class($d);
Rule sets¶
The rule is part of the following rule sets:
@PhpCsFixer:risky with config:
['include' => ['@compiler_optimized'], 'scope' => 'namespaced', 'strict' => true]
@Symfony:risky with config:
['include' => ['@compiler_optimized'], 'scope' => 'namespaced', 'strict' => true]
References¶
Fixer class: PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer
Test class: PhpCsFixer\Tests\Fixer\FunctionNotation\NativeFunctionInvocationFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.