Documentation
¶
Overview ¶
Package php implements the PHP language analyzer for semantic input tracing
Index ¶
- type PHPAnalyzer
- func (a *PHPAnalyzer) AnalyzeMethodBody(method *types.MethodDef, source []byte, state *types.AnalysisState) (*analyzer.MethodFlowAnalysis, error)
- func (a *PHPAnalyzer) BuildSymbolTable(filePath string, source []byte, root *sitter.Node) (*types.SymbolTable, error)
- func (a *PHPAnalyzer) DetectFrameworks(symbolTable *types.SymbolTable, source []byte) ([]string, error)
- func (a *PHPAnalyzer) ExtractAssignments(root *sitter.Node, source []byte, scope string) ([]*types.Assignment, error)
- func (a *PHPAnalyzer) ExtractCalls(root *sitter.Node, source []byte, scope string) ([]*types.CallSite, error)
- func (a *PHPAnalyzer) ExtractClasses(root *sitter.Node, source []byte) ([]*types.ClassDef, error)
- func (a *PHPAnalyzer) ExtractFunctions(root *sitter.Node, source []byte) ([]*types.FunctionDef, error)
- func (a *PHPAnalyzer) FindInputSources(root *sitter.Node, source []byte) ([]*types.FlowNode, error)
- func (a *PHPAnalyzer) ResolveImports(symbolTable *types.SymbolTable, basePath string) ([]string, error)
- func (a *PHPAnalyzer) TraceExpression(target types.FlowTarget, state *types.AnalysisState) (*types.FlowMap, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PHPAnalyzer ¶
type PHPAnalyzer struct {
*analyzer.BaseAnalyzer
// contains filtered or unexported fields
}
PHPAnalyzer implements the LanguageAnalyzer interface for PHP
func (*PHPAnalyzer) AnalyzeMethodBody ¶
func (a *PHPAnalyzer) AnalyzeMethodBody(method *types.MethodDef, source []byte, state *types.AnalysisState) (*analyzer.MethodFlowAnalysis, error)
AnalyzeMethodBody analyzes a method body for data flow
func (*PHPAnalyzer) BuildSymbolTable ¶
func (a *PHPAnalyzer) BuildSymbolTable(filePath string, source []byte, root *sitter.Node) (*types.SymbolTable, error)
BuildSymbolTable builds the symbol table for a PHP file
func (*PHPAnalyzer) DetectFrameworks ¶
func (a *PHPAnalyzer) DetectFrameworks(symbolTable *types.SymbolTable, source []byte) ([]string, error)
DetectFrameworks detects which PHP frameworks are being used Uses centralized framework detection patterns from phpPatterns package
func (*PHPAnalyzer) ExtractAssignments ¶
func (a *PHPAnalyzer) ExtractAssignments(root *sitter.Node, source []byte, scope string) ([]*types.Assignment, error)
ExtractAssignments extracts all assignments from the AST
func (*PHPAnalyzer) ExtractCalls ¶
func (a *PHPAnalyzer) ExtractCalls(root *sitter.Node, source []byte, scope string) ([]*types.CallSite, error)
ExtractCalls extracts all function/method calls from the AST
func (*PHPAnalyzer) ExtractClasses ¶
ExtractClasses extracts class definitions from PHP AST
func (*PHPAnalyzer) ExtractFunctions ¶
func (a *PHPAnalyzer) ExtractFunctions(root *sitter.Node, source []byte) ([]*types.FunctionDef, error)
ExtractFunctions extracts standalone function definitions
func (*PHPAnalyzer) FindInputSources ¶
FindInputSources finds all user input sources in the AST
func (*PHPAnalyzer) ResolveImports ¶
func (a *PHPAnalyzer) ResolveImports(symbolTable *types.SymbolTable, basePath string) ([]string, error)
ResolveImports resolves import paths to actual file paths
func (*PHPAnalyzer) TraceExpression ¶
func (a *PHPAnalyzer) TraceExpression(target types.FlowTarget, state *types.AnalysisState) (*types.FlowMap, error)
TraceExpression traces a specific expression back to its sources