final class CatalogEntry
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.

One syntactic SQL candidate. Runtime reachability is not assessed.

Properties§

public string $id
public TextPattern $pattern
public list<string> $tables
public list<Placeholder> $placeholders
public CallSite $site
public list<Finding> $findings
public bool $correlated = true
public list<string> $through = []
public bool $truncated = false
public bool $siteClosed = true

Methods§

public function __construct(
    public string $id,
    public StatementKind $kind,
    public TextPattern $pattern,
    public list<string> $tables,
    public list<Placeholder> $placeholders,
    public CallSite $site,
    public list<Finding> $findings,
    public bool $correlated = true,
    public list<string> $through = [],
    public bool $truncated = false,
    public bool $siteClosed = true,
)

Parameters

$idstringThe identifier the statement keeps across runs
$kindStatementKindWhat the statement does
$patternTextPatternThe statement text, with a gap wherever a value is spliced in
$tableslist<string>The tables the statement names
$placeholderslist<Placeholder>The bind parameters, in order
$siteCallSiteWhere the statement is issued
$findingslist<Finding>What is worth reporting about the statement
$correlatedboolWhether values kept their structural pairing, without a reachability guarantee
$throughlist<string>The path taken to this reading, from the body the walk started in, outermost first
$truncatedboolWhether a bound — on loop passes, callers or ways in — cut the search short of every way the statement can be
$siteClosedboolWhether every sibling candidate at this call site has closed dependencies
public function resolution(): Resolution

How far the analyzer got with the statement, and why it got no further.

Returns

Test cases 5
Called from 14
Calls 1
public function searchClosed(): bool

Whether the analyzer followed every way the statement can be to its end.

A statement whose text reached runtime input is closed: the trail was followed as far as it goes. One cut short by a budget, or by a limit on how many loop passes or callers are followed, is not, however much of its text resolved. An unresolved sibling keeps the entire call site open. Closure never guarantees that a candidate is reachable at runtime.

Returns

bool
Test cases 7
Called from 4
Calls 1
public function sql(): string

The statement text, with every gap shown as {$}.

Returns

string
Test cases 21
Called from 2
Calls 1
public function hasFinding(FindingRule $rule): bool

Whether the statement carries a finding of the given rule.

Parameters

Returns

bool
Test cases 1

Test cases 201§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 10
Other tests reaching this symbol 191

Relations§

Instantiated in 2
Method calls 31
Type declarations 37