All items 181

Interfaces 8§

Term @visibility rootSqlCatalog\Core\EvaluationOne alternative an expression may evaluate to.
ExtensionInterface @visibility rootSqlCatalog\Core\ExtensionA named set of database calls the analyzer should recognise.
ModelProviderInterface public APISqlCatalog\Core\Extension\ModelAn optional extension capability for source-level call and statement models.
QueryModelInterface public APISqlCatalog\Core\Extension\ModelConverts a call and its derived inputs into SQL without performing derivation itself.
ReporterInterface @visibility rootSqlCatalog\Core\ReporterOne way of writing a catalog out.
SqlFormatter @visibility rootSqlCatalog\Core\ReporterAn optional SQL presentation policy supplied by an application.
Dialect @visibility rootSqlCatalog\Core\SqlSQL spelling needed by framework query models.
TextSegment @visibility rootSqlCatalog\Core\TextOne piece of a partially reconstructed string.

Classes 163§

ArtifactWriter @visibility rootSqlCatalog\CliWrites what a reporter produced into a directory.
CatalogCommand public APISqlCatalog\CliThe sql-catalog command.
CommandLine @visibility rootSqlCatalog\CliWhat the command was asked to do.
CommandLineParser @visibility rootSqlCatalog\CliReads the arguments the command was invoked with.
CommandResult @visibility rootSqlCatalog\CliEverything one run of the command produced.
InvalidCommandLineException @visibility rootSqlCatalog\CliThe command was given arguments it cannot act on.
UsageText @visibility rootSqlCatalog\CliWhat the command prints when it is asked how to be used.
WriteFailureException @visibility rootSqlCatalog\CliA report could not be written where it was asked to go.
BuiltinCallModel @visibility rootSqlCatalog\Core\AnalysisWhat the PHP functions that shape query text do to the values they are given.
CallEvaluator @visibility rootSqlCatalog\Core\AnalysisWorks out what a call produces.
ConstantReader @visibility rootSqlCatalog\Core\AnalysisReads constants: global ones, class ones, enum cases and ::class.
EntryFactory @visibility rootSqlCatalog\Core\AnalysisTurns the statements found while walking a file into catalog entries.
EvaluationBudget @visibility rootSqlCatalog\Core\AnalysisThe work one analysis is allowed to do before it gives up and widens.
ExpressionEvaluator @visibility rootSqlCatalog\Core\AnalysisWorks out what values an expression can take at the point it is written.
ExternalInput @visibility rootSqlCatalog\Core\AnalysisThe places a value can enter the program from outside it.
FunctionScope @visibility rootSqlCatalog\Core\AnalysisWhich function body the analyzer is currently walking.
Interpreter @visibility rootSqlCatalog\Core\AnalysisReads the statements a source tree can issue, starting from every call that issues one.
QueryRecord @visibility rootSqlCatalog\Core\AnalysisOne statement found at a call site, while values may still be bound to it.
ReferenceEvaluator @visibility rootSqlCatalog\Core\AnalysisReads the value behind a name: a variable, a property, a constant or an element.
SinkFinder @visibility rootSqlCatalog\Core\AnalysisFinds every call that is written the way a database call is written.
SinkMatcher @visibility rootSqlCatalog\Core\AnalysisDecides whether a call in the source is one of the database calls to catalog.
StatementRecorder @visibility rootSqlCatalog\Core\AnalysisCollects the statements found while walking one file.
ValueBinder @visibility rootSqlCatalog\Core\AnalysisAttaches the values a call binds to the statements they are bound to.
Binding @visibility rootSqlCatalog\Core\Analysis\DerivationWhat the names a path still needs are bound to at the start of its body, for one way in.
CalleeReturns @visibility rootSqlCatalog\Core\Analysis\DerivationWhat a call into the analyzed source returns, read back from its return statements.
CallerIndex @visibility rootSqlCatalog\Core\Analysis\DerivationEvery call in the source, by the name it is written with.
CallerSet @visibility rootSqlCatalog\Core\Analysis\DerivationThe calls found to reach a body, and whether some other call might reach it too.
Callers @visibility rootSqlCatalog\Core\Analysis\DerivationThe calls in the source that reach a given function or method.
Deriver @visibility rootSqlCatalog\Core\Analysis\DerivationWorks out what expressions can be at a point, starting from the point.
EntryBinder @visibility rootSqlCatalog\Core\Analysis\DerivationBinds what a path still needs when it reaches the start of its body.
FreeNames @visibility rootSqlCatalog\Core\Analysis\DerivationThe names an expression reads, which are what its value depends on.
ModifiedNames @visibility rootSqlCatalog\Core\Analysis\DerivationThe names a statement may assign, wherever inside it the assignment is written.
PropertyWrites @visibility rootSqlCatalog\Core\Analysis\DerivationWhat a property of an object can hold when a method starts, read from everywhere the class writes it.
SliceExecutor @visibility rootSqlCatalog\Core\Analysis\DerivationRuns the steps a path kept, in order, and reports the values they leave behind.
Solution @visibility rootSqlCatalog\Core\Analysis\DerivationWhat a set of expressions can be at a point, along one way of getting there.
SourceTree @visibility rootSqlCatalog\Core\Analysis\DerivationWhere a node sits in the source: which statement list holds it, and which file.
CallbackEffects @visibility rootSqlCatalog\Core\Analysis\Derivation\ObjectsRuns a callback's object dependencies through the same slicer as its caller.
ObjectEffects @visibility rootSqlCatalog\Core\Analysis\Derivation\ObjectsConservative alias dependencies for calls that may mutate an object.
Arrival @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceA path walked back from a call to the start of the body it is written in.
AssignmentSteps @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceWalks a path back over what one statement assigns.
BackwardSlicer @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceWalks back from a call to the start of its body, keeping only what its argument depends on.
BranchArms @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceThe runs of statements a branching statement can take.
LoopPasses @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceWalks back through a loop one pass at a time.
Pending @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceOne path being walked back from a call: what it passed through, and what it still needs.
SliceStep @visibility rootSqlCatalog\Core\Analysis\Derivation\SliceOne thing that has to happen, on the way to the call, for its argument to have the value it has.
ReferenceEffects @visibility rootSqlCatalog\Core\Analysis\EffectNames which may share storage in a body, without deciding which paths execute.
WriteEffects @visibility rootSqlCatalog\Core\Analysis\EffectWrites whose values cannot be reconstructed, including writes hidden behind calls.
NamedModel @visibility rootSqlCatalog\Core\Analysis\FunctionModelResolves a configured model using the application's Composer autoloader.
Registry public APISqlCatalog\Core\Analysis\FunctionModelRegistered interpretations of PHP function calls, from evaluated arguments to values.
ModelQueries @visibility rootSqlCatalog\Core\Analysis\ModelDerives extension-requested expressions and keeps their evidence on compiled statements.
AnalysisProblem @visibility rootSqlCatalog\Core\CatalogA file the analyzer could not read, reported alongside the catalog.
CallSite @visibility rootSqlCatalog\Core\CatalogWhere in the analyzed source a statement is issued.
Catalog public APISqlCatalog\Core\CatalogEvery statement the analyzed application can issue, and what stopped the analyzer.
CatalogEntry @visibility rootSqlCatalog\Core\CatalogOne syntactic SQL candidate. Runtime reachability is not assessed.
EntryIdentity @visibility rootSqlCatalog\Core\CatalogThe identifier a catalogued statement keeps across runs.
Finding @visibility rootSqlCatalog\Core\CatalogOne thing worth reporting about a catalogued statement.
Placeholder @visibility rootSqlCatalog\Core\CatalogOne bind parameter of a catalogued statement, with what it is bound to.
StatementPart @visibility rootSqlCatalog\Core\CatalogOne piece of a catalogued statement: a run of text that is known, or a gap.
ValueDomain @visibility rootSqlCatalog\Core\CatalogWhat a bound value can be, reported in the form the catalog stores.
ArrayEntry @visibility rootSqlCatalog\Core\EvaluationOne element of a statically reconstructed array.
ArrayTerm @visibility rootSqlCatalog\Core\EvaluationAn array literal the analyzer reconstructed element by element.
CallResults @visibility rootSqlCatalog\Core\EvaluationWhat following a call produced, remembered for the next caller that leads there.
Domain @visibility rootSqlCatalog\Core\EvaluationEvery value an expression may take, over-approximated.
Environment @visibility rootSqlCatalog\Core\EvaluationWhat the analyzer knows about each variable at one point in a function body.
LiteralTerm @visibility rootSqlCatalog\Core\EvaluationA scalar the analyzer resolved exactly.
ObjectMemory @visibility rootSqlCatalog\Core\EvaluationImmutable object snapshots indexed by allocation, shared by aliases within one run.
ObjectTerm @visibility rootSqlCatalog\Core\EvaluationAn object the analyzer tracked by class.
OpaqueTerm @visibility rootSqlCatalog\Core\EvaluationA value the analyzer knows only by its type and where it came from.
PatternTerm @visibility rootSqlCatalog\Core\EvaluationA string whose resolved parts are known but which still has gaps.
ExtensionRegistry @visibility rootSqlCatalog\Core\ExtensionThe extensions available to a run, and the calls they contribute.
SinkSpec @visibility rootSqlCatalog\Core\ExtensionOne call an extension recognises as reaching the database.
UnknownExtensionException @visibility rootSqlCatalog\Core\ExtensionAn extension was asked for by a name nothing is registered under.
CallContext public APISqlCatalog\Core\Extension\ModelA PHP call AST together with its evaluated inputs and shared object memory.
ModelContext public APISqlCatalog\Core\Extension\ModelShared source metadata and bounded callback evaluation available to extensions.
ModelSet public APISqlCatalog\Core\Extension\ModelCall transformations, statement compilers and type relations registered by enabled extensions.
QueryOutput public APISqlCatalog\Core\Extension\ModelModelled SQL and bindings, retaining holes and uncertainty instead of flattening to strings.
CatalogFilter @visibility rootSqlCatalog\Core\FilterWhich of the statements found a report should keep.
ClassShape @visibility rootSqlCatalog\Core\PhpOne class, interface, trait or enum, reduced to the parts the analyzer reads.
DeclaredGlobals @visibility rootSqlCatalog\Core\PhpWhat the global variables a body declares are known to hold.
FunctionShape @visibility rootSqlCatalog\Core\PhpOne free function the analyzer can look up and, when it is worth it, step into.
MethodShape @visibility rootSqlCatalog\Core\PhpOne method the analyzer can look up and, when it is worth it, step into.
NodeText @visibility rootSqlCatalog\Core\PhpRenders a node back to source, short enough to quote inside a finding.
ParameterShape @visibility rootSqlCatalog\Core\PhpOne declared parameter of a function or method.
ParsedFile @visibility rootSqlCatalog\Core\PhpOne source file, parsed and with every name resolved to its fully qualified form.
ProgramIndex @visibility rootSqlCatalog\Core\PhpEvery declaration the analyzed source tree contains, looked up by name.
ProgramIndexBuilder @visibility rootSqlCatalog\Core\PhpCollects every declaration of a parsed source tree into one index.
SourceParser @visibility rootSqlCatalog\Core\PhpTurns PHP source into a statement tree with fully qualified names.
SyntaxException @visibility rootSqlCatalog\Core\PhpA source file the PHP parser could not read.
TypeReader @visibility rootSqlCatalog\Core\PhpReads a written PHP type declaration into the shape the analyzer reasons about.
CatalogArtifacts @visibility rootSqlCatalog\Core\ReporterThe files a reporter produced, held in memory until something writes them.
ReporterRegistry @visibility rootSqlCatalog\Core\ReporterThe reporters available to a run.
UnknownReporterException @visibility rootSqlCatalog\Core\ReporterA reporter was asked for by a name nothing is registered under.
SourceFile @visibility rootSqlCatalog\Core\SourceOne PHP file to analyze, named the way the catalog reports it.
SourceScanException @visibility rootSqlCatalog\Core\SourceA path the scanner was asked to read and could not.
SourceScanner @visibility rootSqlCatalog\Core\SourceFinds the PHP files under the paths a run was pointed at.
Dialects @visibility rootSqlCatalog\Core\SqlApplication-supplied SQL policies and connection identities.
PlaceholderRef @visibility rootSqlCatalog\Core\SqlOne bind parameter found in a statement.
PlaceholderScanner @visibility rootSqlCatalog\Core\SqlFinds the bind parameters of a statement, including one still holding gaps.
SqlLexer @visibility rootSqlCatalog\Core\SqlSplits SQL into tokens without committing to one dialect's grammar.
SqlToken @visibility rootSqlCatalog\Core\SqlOne token of a SQL statement, with the nesting it was found at.
StatementKindReader @visibility rootSqlCatalog\Core\SqlReads what a statement does from the keyword it leads with.
TableReader @visibility rootSqlCatalog\Core\SqlReads the tables a statement names.
LiteralText @visibility rootSqlCatalog\Core\TextA run of characters the analyzer resolved exactly.
TextGeneralization @visibility rootSqlCatalog\Core\TextCollapses several patterns into the one shape that covers all of them.
TextHole @visibility rootSqlCatalog\Core\TextA gap where a value the analyzer could not resolve is spliced into a string.
TextPattern @visibility rootSqlCatalog\Core\TextA string the analyzer knows in part: resolved runs of text with gaps between them.
TypeShape @visibility rootSqlCatalog\Core\TypeA PHP static type, flattened into the set of alternatives a value may take.
DoctrineExtension @visibility rootSqlCatalog\Extension\DoctrineDoctrine DBAL connections, where the statement is written as SQL.
BuilderCalls @visibility rootSqlCatalog\Extension\LaravelLaravel factories and mutations executed by the ordinary expression evaluator.
BuilderQueries @visibility rootSqlCatalog\Extension\LaravelDerives receiver state and arguments together, then compiles at the existing sink.
CallModel @visibility rootSqlCatalog\Extension\LaravelRegisters Laravel call semantics through the framework-neutral model API.
CallbackModel @visibility rootSqlCatalog\Extension\LaravelModels nested predicates and source-declared local scopes through shared callback execution.
Clauses @visibility rootSqlCatalog\Extension\LaravelProjection, ordering, grouping, having and join effects on a query state.
Grammar @visibility rootSqlCatalog\Extension\LaravelLaravel identifier wrapping and ordered SQL fragments for the selected grammar.
LaravelExtension @visibility rootSqlCatalog\Extension\LaravelLaravel's raw SQL calls and Query Builder/Eloquent execution boundaries.
ModelMetadata @visibility rootSqlCatalog\Extension\LaravelReads source-declared model metadata without loading model or framework code.
Predicates @visibility rootSqlCatalog\Extension\LaravelPredicate effects, retaining Laravel's clause and binding order.
QueryState @visibility rootSqlCatalog\Extension\LaravelA query's immutable fields, carried through the shared object memory.
SelectCompiler @visibility rootSqlCatalog\Extension\LaravelCompiles a read after all query mutations have run.
WriteCompiler @visibility rootSqlCatalog\Extension\LaravelCompiles literal-shaped writes while preserving their value domains.
MysqliExtension @visibility rootSqlCatalog\Extension\MysqliThe mysqli API, in both its object and its procedural form.
PdoExtension @visibility rootSqlCatalog\Extension\PdoThe PDO API, which every other extension's statements eventually reach.
WordPressExtension @visibility rootSqlCatalog\Extension\WordPressWordPress's wpdb, where nearly all of the SQL an installation issues is written.
AnalysisOptions public APISqlCatalog\FacadeWhat one analysis run is asked to do.
Analyzer public APISqlCatalog\FacadeReads PHP source and reports the SQL statements it can issue.
Builtins @visibility rootSqlCatalog\FacadeComposition of the implementations shipped by the package.
Configuration @visibility rootSqlCatalog\FacadeCatalog settings read from a YAML document.
ConfigurationSchema @visibility rootSqlCatalog\FacadeValidates the documented catalog settings and resolves their filesystem paths.
InvalidConfigurationException @visibility rootSqlCatalog\FacadeA requested configuration could not be loaded.
Dialect @visibility rootSqlCatalog\Platform\MySqlMySql identifier and insert spelling.
SqlFormatter @visibility rootSqlCatalog\Platform\MySqlFormats MySql SQL for catalog reports.
Dialect @visibility rootSqlCatalog\Platform\PostgreSqlPostgreSql identifier and insert spelling.
SqlFormatter @visibility rootSqlCatalog\Platform\PostgreSqlFormats PostgreSql SQL for catalog reports.
Dialect @visibility rootSqlCatalog\Platform\SqliteSqlite identifier and insert spelling.
SqlFormatter @visibility rootSqlCatalog\Platform\SqliteFormats Sqlite SQL for catalog reports.
CatalogIndex @visibility rootSqlCatalog\Reporter\HtmlThe catalog grouped along every route a reader can take to a statement.
CatalogStatistics @visibility rootSqlCatalog\Reporter\HtmlThe counts the report is read through.
HtmlReporter @visibility rootSqlCatalog\Reporter\HtmlWrites the catalog as a site of linked HTML pages.
HtmlText @visibility rootSqlCatalog\Reporter\HtmlThe text primitives every page of the report is written with.
PageShell @visibility rootSqlCatalog\Reporter\HtmlThe document every page of the report is written into.
Palette @visibility rootSqlCatalog\Reporter\HtmlWhich hue each fact about a statement is written in.
ReportAssets @visibility rootSqlCatalog\Reporter\HtmlThe stylesheets and the scripts the pages are read with.
ReportSite @visibility rootSqlCatalog\Reporter\HtmlThe pages the report is made of, and the address of everything on them.
Scope @visibility rootSqlCatalog\Reporter\HtmlWhere in the program a statement is issued, read out of the enclosing function's name.
SearchIndex @visibility rootSqlCatalog\Reporter\HtmlThe index the search box reads, written as a script beside the pages.
SqlFormatter @visibility rootSqlCatalog\Reporter\HtmlFormats report SQL with sql-formatter's expanded layout.
SqlHighlighter @visibility rootSqlCatalog\Reporter\HtmlRenders a reconstructed statement as marked-up SQL.
StatementList @visibility rootSqlCatalog\Reporter\HtmlA listing of statements that a reader can narrow down on the page.
StatementRow @visibility rootSqlCatalog\Reporter\HtmlOne statement as a row of a listing.
TableName @visibility rootSqlCatalog\Reporter\HtmlA table name as the report reads it: the schema it is qualified with, and how much of it is known.
ClassPage @visibility rootSqlCatalog\Reporter\Html\PageOne class: the statements each of its methods issues.
FileIndexPage @visibility rootSqlCatalog\Reporter\Html\PageEvery file the statements are written in, under the directory that holds it.
FilePage @visibility rootSqlCatalog\Reporter\Html\PageOne file: the statements each function in it issues.
FindingPage @visibility rootSqlCatalog\Reporter\Html\PageEverything worth reporting: where to look first, then every finding under its rule.
NamespacePage @visibility rootSqlCatalog\Reporter\Html\PageEvery namespace, with the classes and functions under it that issue statements.
OverviewPage @visibility rootSqlCatalog\Reporter\Html\PageThe page a reader opens first: the routes to a statement, and what needs looking at.
StatementIndexPage @visibility rootSqlCatalog\Reporter\Html\PageEvery statement, to be narrowed down from any direction.
StatementPage @visibility rootSqlCatalog\Reporter\Html\PageOne statement, with everything the analysis established about it.
TableIndexPage @visibility rootSqlCatalog\Reporter\Html\PageEvery table the catalog names, with how each is used.
TablePage @visibility rootSqlCatalog\Reporter\Html\PageOne table: what reads it, what writes it, what alters it, and from where.
SourceCode @visibility rootSqlCatalog\Reporter\Html\SourceThe analyzed PHP source, with numbered lines and the database calls marked.
JsonReporter @visibility rootSqlCatalog\Reporter\JsonWrites the catalog as JSON, in an order two runs can be compared in.
TextReporter @visibility rootSqlCatalog\Reporter\TextWrites the catalog as plain lines, for reading in a terminal.

Enums 10§

ExitCode @visibility rootSqlCatalog\CliWhat the command tells the shell about how the run went.
FindingRule @visibility rootSqlCatalog\Core\CatalogWhat a finding says about a catalogued statement.
Resolution @visibility rootSqlCatalog\Core\CatalogHow far the analyzer got with a statement, and why it got no further.
Severity @visibility rootSqlCatalog\Core\CatalogHow much attention a finding deserves.
Presence @visibility rootSqlCatalog\Core\EvaluationWhether a variable exists, independently of its value domain.
SinkCallKind @visibility rootSqlCatalog\Core\ExtensionHow a database call is written in PHP.
SinkRole @visibility rootSqlCatalog\Core\ExtensionWhat a matched database call does with the statement it is given.
SqlTokenKind @visibility rootSqlCatalog\Core\SqlWhat one token of a SQL statement is.
StatementKind @visibility rootSqlCatalog\Core\SqlWhat a catalogued statement does to the database.
Origin @visibility rootSqlCatalog\Core\TextWhere a value the analyzer could not pin down comes from.