Documentation

SideEffectsDetector
in package

FinalYes

Table of Contents

Constants

INPUT_OUTPUT_FUNCTIONS  : mixed = ['fopen', 'file_get_contents', 'file_put_conten...
OUTPUT_TOKENS  : mixed = [T_PRINT, T_ECHO, T_INLINE_HTML]
PROCESS_EXIT_TOKENS  : mixed = [T_EXIT]
SCOPE_POLLUTING_FUNCTIONS  : mixed = ['putenv', 'setlocale', 'class_exists', 'ini_set']
STANDARD_OUTPUT_FUNCTIONS  : mixed = ['printf', 'vprintf']

Properties

$functionMetadata  : array<string, array{'hasSideEffects': bool}>
$scopePollutingTokens  : array<string|int, int>

Methods

__construct()  : mixed
getSideEffects()  : array<string|int, SideEffect::*>
consumeWhitespaces()  : void
getFunctionCall()  : string|null
getFunctionCallSideEffect()  : SideEffect::*|null
getMethodCall()  : string|null
getPropertyAccess()  : string|null
isAnonymousFunction()  : bool
isNonLocalVariable()  : bool

Constants

INPUT_OUTPUT_FUNCTIONS

private mixed INPUT_OUTPUT_FUNCTIONS = ['fopen', 'file_get_contents', 'file_put_contents', 'fwrite', 'fputs', 'fread', 'unlink']

SCOPE_POLLUTING_FUNCTIONS

private mixed SCOPE_POLLUTING_FUNCTIONS = ['putenv', 'setlocale', 'class_exists', 'ini_set']

STANDARD_OUTPUT_FUNCTIONS

private mixed STANDARD_OUTPUT_FUNCTIONS = ['printf', 'vprintf']

Properties

$functionMetadata

private array<string, array{'hasSideEffects': bool}> $functionMetadata

$scopePollutingTokens

private array<string|int, int> $scopePollutingTokens = [T_CLASS, T_FUNCTION, T_NEW, T_EVAL, T_GLOBAL, T_GOTO, T_HALT_COMPILER, T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE, T_THROW, T_UNSET, T_UNSET_CAST]

Methods

getSideEffects()

public getSideEffects(string $code) : array<string|int, SideEffect::*>
APIYes
Parameters
$code : string
Return values
array<string|int, SideEffect::*>

consumeWhitespaces()

private consumeWhitespaces(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int &$index) : void
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int

getFunctionCall()

private getFunctionCall(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int $index) : string|null
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int
Return values
string|null

getFunctionCallSideEffect()

private getFunctionCallSideEffect(string $functionName) : SideEffect::*|null
Parameters
$functionName : string
Return values
SideEffect::*|null

getMethodCall()

private getMethodCall(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int $index) : string|null
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int
Return values
string|null

getPropertyAccess()

private getPropertyAccess(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int $index) : string|null
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int
Return values
string|null

isAnonymousFunction()

private isAnonymousFunction(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int $index) : bool
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int
Return values
bool

isNonLocalVariable()

private isNonLocalVariable(array<int, array{0: int, 1: string, 2: int}|string|int> $tokens, int $index) : bool
Parameters
$tokens : array<int, array{0: int, 1: string, 2: int}|string|int>
$index : int
Return values
bool
On this page

Search results