Rule native_function_invocation¶
Add leading \ before function invocation to speed up resolving.
Warnings¶
This rule is RISKY¶
Risky when any of the functions are overridden.
This rule is CONFIGURABLE¶
You can configure this rule using the following options: exclude,
include, scope, strict.
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.