| ArtifactWriter @visibility root | SqlCatalog\Cli | Writes what a reporter produced into a directory. |
| CatalogCommand public API | SqlCatalog\Cli | The sql-catalog command. |
| CommandLine @visibility root | SqlCatalog\Cli | What the command was asked to do. |
| CommandLineParser @visibility root | SqlCatalog\Cli | Reads the arguments the command was invoked with. |
| CommandResult @visibility root | SqlCatalog\Cli | Everything one run of the command produced. |
| InvalidCommandLineException @visibility root | SqlCatalog\Cli | The command was given arguments it cannot act on. |
| UsageText @visibility root | SqlCatalog\Cli | What the command prints when it is asked how to be used. |
| WriteFailureException @visibility root | SqlCatalog\Cli | A report could not be written where it was asked to go. |
| BuiltinCallModel @visibility root | SqlCatalog\Core\Analysis | What the PHP functions that shape query text do to the values they are given. |
| CallEvaluator @visibility root | SqlCatalog\Core\Analysis | Works out what a call produces. |
| ConstantReader @visibility root | SqlCatalog\Core\Analysis | Reads constants: global ones, class ones, enum cases and ::class. |
| EntryFactory @visibility root | SqlCatalog\Core\Analysis | Turns the statements found while walking a file into catalog entries. |
| EvaluationBudget @visibility root | SqlCatalog\Core\Analysis | The work one analysis is allowed to do before it gives up and widens. |
| ExpressionEvaluator @visibility root | SqlCatalog\Core\Analysis | Works out what values an expression can take at the point it is written. |
| ExternalInput @visibility root | SqlCatalog\Core\Analysis | The places a value can enter the program from outside it. |
| FunctionScope @visibility root | SqlCatalog\Core\Analysis | Which function body the analyzer is currently walking. |
| Interpreter @visibility root | SqlCatalog\Core\Analysis | Reads the statements a source tree can issue, starting from every call that issues one. |
| QueryRecord @visibility root | SqlCatalog\Core\Analysis | One statement found at a call site, while values may still be bound to it. |
| ReferenceEvaluator @visibility root | SqlCatalog\Core\Analysis | Reads the value behind a name: a variable, a property, a constant or an element. |
| SinkFinder @visibility root | SqlCatalog\Core\Analysis | Finds every call that is written the way a database call is written. |
| SinkMatcher @visibility root | SqlCatalog\Core\Analysis | Decides whether a call in the source is one of the database calls to catalog. |
| StatementRecorder @visibility root | SqlCatalog\Core\Analysis | Collects the statements found while walking one file. |
| ValueBinder @visibility root | SqlCatalog\Core\Analysis | Attaches the values a call binds to the statements they are bound to. |
| Binding @visibility root | SqlCatalog\Core\Analysis\Derivation | What the names a path still needs are bound to at the start of its body, for one way in. |
| CalleeReturns @visibility root | SqlCatalog\Core\Analysis\Derivation | What a call into the analyzed source returns, read back from its return statements. |
| CallerIndex @visibility root | SqlCatalog\Core\Analysis\Derivation | Every call in the source, by the name it is written with. |
| CallerSet @visibility root | SqlCatalog\Core\Analysis\Derivation | The calls found to reach a body, and whether some other call might reach it too. |
| Callers @visibility root | SqlCatalog\Core\Analysis\Derivation | The calls in the source that reach a given function or method. |
| Deriver @visibility root | SqlCatalog\Core\Analysis\Derivation | Works out what expressions can be at a point, starting from the point. |
| EntryBinder @visibility root | SqlCatalog\Core\Analysis\Derivation | Binds what a path still needs when it reaches the start of its body. |
| FreeNames @visibility root | SqlCatalog\Core\Analysis\Derivation | The names an expression reads, which are what its value depends on. |
| ModifiedNames @visibility root | SqlCatalog\Core\Analysis\Derivation | The names a statement may assign, wherever inside it the assignment is written. |
| PropertyWrites @visibility root | SqlCatalog\Core\Analysis\Derivation | What a property of an object can hold when a method starts, read from everywhere the class writes it. |
| SliceExecutor @visibility root | SqlCatalog\Core\Analysis\Derivation | Runs the steps a path kept, in order, and reports the values they leave behind. |
| Solution @visibility root | SqlCatalog\Core\Analysis\Derivation | What a set of expressions can be at a point, along one way of getting there. |
| SourceTree @visibility root | SqlCatalog\Core\Analysis\Derivation | Where a node sits in the source: which statement list holds it, and which file. |
| CallbackEffects @visibility root | SqlCatalog\Core\Analysis\Derivation\Objects | Runs a callback's object dependencies through the same slicer as its caller. |
| ObjectEffects @visibility root | SqlCatalog\Core\Analysis\Derivation\Objects | Conservative alias dependencies for calls that may mutate an object. |
| Arrival @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | A path walked back from a call to the start of the body it is written in. |
| AssignmentSteps @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | Walks a path back over what one statement assigns. |
| BackwardSlicer @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | Walks back from a call to the start of its body, keeping only what its argument depends on. |
| BranchArms @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | The runs of statements a branching statement can take. |
| LoopPasses @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | Walks back through a loop one pass at a time. |
| Pending @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | One path being walked back from a call: what it passed through, and what it still needs. |
| SliceStep @visibility root | SqlCatalog\Core\Analysis\Derivation\Slice | One thing that has to happen, on the way to the call, for its argument to have the value it has. |
| ReferenceEffects @visibility root | SqlCatalog\Core\Analysis\Effect | Names which may share storage in a body, without deciding which paths execute. |
| WriteEffects @visibility root | SqlCatalog\Core\Analysis\Effect | Writes whose values cannot be reconstructed, including writes hidden behind calls. |
| NamedModel @visibility root | SqlCatalog\Core\Analysis\FunctionModel | Resolves a configured model using the application's Composer autoloader. |
| Registry public API | SqlCatalog\Core\Analysis\FunctionModel | Registered interpretations of PHP function calls, from evaluated arguments to values. |
| ModelQueries @visibility root | SqlCatalog\Core\Analysis\Model | Derives extension-requested expressions and keeps their evidence on compiled statements. |
| AnalysisProblem @visibility root | SqlCatalog\Core\Catalog | A file the analyzer could not read, reported alongside the catalog. |
| CallSite @visibility root | SqlCatalog\Core\Catalog | Where in the analyzed source a statement is issued. |
| Catalog public API | SqlCatalog\Core\Catalog | Every statement the analyzed application can issue, and what stopped the analyzer. |
| CatalogEntry @visibility root | SqlCatalog\Core\Catalog | One syntactic SQL candidate. Runtime reachability is not assessed. |
| EntryIdentity @visibility root | SqlCatalog\Core\Catalog | The identifier a catalogued statement keeps across runs. |
| Finding @visibility root | SqlCatalog\Core\Catalog | One thing worth reporting about a catalogued statement. |
| Placeholder @visibility root | SqlCatalog\Core\Catalog | One bind parameter of a catalogued statement, with what it is bound to. |
| StatementPart @visibility root | SqlCatalog\Core\Catalog | One piece of a catalogued statement: a run of text that is known, or a gap. |
| ValueDomain @visibility root | SqlCatalog\Core\Catalog | What a bound value can be, reported in the form the catalog stores. |
| ArrayEntry @visibility root | SqlCatalog\Core\Evaluation | One element of a statically reconstructed array. |
| ArrayTerm @visibility root | SqlCatalog\Core\Evaluation | An array literal the analyzer reconstructed element by element. |
| CallResults @visibility root | SqlCatalog\Core\Evaluation | What following a call produced, remembered for the next caller that leads there. |
| Domain @visibility root | SqlCatalog\Core\Evaluation | Every value an expression may take, over-approximated. |
| Environment @visibility root | SqlCatalog\Core\Evaluation | What the analyzer knows about each variable at one point in a function body. |
| LiteralTerm @visibility root | SqlCatalog\Core\Evaluation | A scalar the analyzer resolved exactly. |
| ObjectMemory @visibility root | SqlCatalog\Core\Evaluation | Immutable object snapshots indexed by allocation, shared by aliases within one run. |
| ObjectTerm @visibility root | SqlCatalog\Core\Evaluation | An object the analyzer tracked by class. |
| OpaqueTerm @visibility root | SqlCatalog\Core\Evaluation | A value the analyzer knows only by its type and where it came from. |
| PatternTerm @visibility root | SqlCatalog\Core\Evaluation | A string whose resolved parts are known but which still has gaps. |
| ExtensionRegistry @visibility root | SqlCatalog\Core\Extension | The extensions available to a run, and the calls they contribute. |
| SinkSpec @visibility root | SqlCatalog\Core\Extension | One call an extension recognises as reaching the database. |
| UnknownExtensionException @visibility root | SqlCatalog\Core\Extension | An extension was asked for by a name nothing is registered under. |
| CallContext public API | SqlCatalog\Core\Extension\Model | A PHP call AST together with its evaluated inputs and shared object memory. |
| ModelContext public API | SqlCatalog\Core\Extension\Model | Shared source metadata and bounded callback evaluation available to extensions. |
| ModelSet public API | SqlCatalog\Core\Extension\Model | Call transformations, statement compilers and type relations registered by enabled extensions. |
| QueryOutput public API | SqlCatalog\Core\Extension\Model | Modelled SQL and bindings, retaining holes and uncertainty instead of flattening to strings. |
| CatalogFilter @visibility root | SqlCatalog\Core\Filter | Which of the statements found a report should keep. |
| ClassShape @visibility root | SqlCatalog\Core\Php | One class, interface, trait or enum, reduced to the parts the analyzer reads. |
| DeclaredGlobals @visibility root | SqlCatalog\Core\Php | What the global variables a body declares are known to hold. |
| FunctionShape @visibility root | SqlCatalog\Core\Php | One free function the analyzer can look up and, when it is worth it, step into. |
| MethodShape @visibility root | SqlCatalog\Core\Php | One method the analyzer can look up and, when it is worth it, step into. |
| NodeText @visibility root | SqlCatalog\Core\Php | Renders a node back to source, short enough to quote inside a finding. |
| ParameterShape @visibility root | SqlCatalog\Core\Php | One declared parameter of a function or method. |
| ParsedFile @visibility root | SqlCatalog\Core\Php | One source file, parsed and with every name resolved to its fully qualified form. |
| ProgramIndex @visibility root | SqlCatalog\Core\Php | Every declaration the analyzed source tree contains, looked up by name. |
| ProgramIndexBuilder @visibility root | SqlCatalog\Core\Php | Collects every declaration of a parsed source tree into one index. |
| SourceParser @visibility root | SqlCatalog\Core\Php | Turns PHP source into a statement tree with fully qualified names. |
| SyntaxException @visibility root | SqlCatalog\Core\Php | A source file the PHP parser could not read. |
| TypeReader @visibility root | SqlCatalog\Core\Php | Reads a written PHP type declaration into the shape the analyzer reasons about. |
| CatalogArtifacts @visibility root | SqlCatalog\Core\Reporter | The files a reporter produced, held in memory until something writes them. |
| ReporterRegistry @visibility root | SqlCatalog\Core\Reporter | The reporters available to a run. |
| UnknownReporterException @visibility root | SqlCatalog\Core\Reporter | A reporter was asked for by a name nothing is registered under. |
| SourceFile @visibility root | SqlCatalog\Core\Source | One PHP file to analyze, named the way the catalog reports it. |
| SourceScanException @visibility root | SqlCatalog\Core\Source | A path the scanner was asked to read and could not. |
| SourceScanner @visibility root | SqlCatalog\Core\Source | Finds the PHP files under the paths a run was pointed at. |
| Dialects @visibility root | SqlCatalog\Core\Sql | Application-supplied SQL policies and connection identities. |
| PlaceholderRef @visibility root | SqlCatalog\Core\Sql | One bind parameter found in a statement. |
| PlaceholderScanner @visibility root | SqlCatalog\Core\Sql | Finds the bind parameters of a statement, including one still holding gaps. |
| SqlLexer @visibility root | SqlCatalog\Core\Sql | Splits SQL into tokens without committing to one dialect's grammar. |
| SqlToken @visibility root | SqlCatalog\Core\Sql | One token of a SQL statement, with the nesting it was found at. |
| StatementKindReader @visibility root | SqlCatalog\Core\Sql | Reads what a statement does from the keyword it leads with. |
| TableReader @visibility root | SqlCatalog\Core\Sql | Reads the tables a statement names. |
| LiteralText @visibility root | SqlCatalog\Core\Text | A run of characters the analyzer resolved exactly. |
| TextGeneralization @visibility root | SqlCatalog\Core\Text | Collapses several patterns into the one shape that covers all of them. |
| TextHole @visibility root | SqlCatalog\Core\Text | A gap where a value the analyzer could not resolve is spliced into a string. |
| TextPattern @visibility root | SqlCatalog\Core\Text | A string the analyzer knows in part: resolved runs of text with gaps between them. |
| TypeShape @visibility root | SqlCatalog\Core\Type | A PHP static type, flattened into the set of alternatives a value may take. |
| DoctrineExtension @visibility root | SqlCatalog\Extension\Doctrine | Doctrine DBAL connections, where the statement is written as SQL. |
| BuilderCalls @visibility root | SqlCatalog\Extension\Laravel | Laravel factories and mutations executed by the ordinary expression evaluator. |
| BuilderQueries @visibility root | SqlCatalog\Extension\Laravel | Derives receiver state and arguments together, then compiles at the existing sink. |
| CallModel @visibility root | SqlCatalog\Extension\Laravel | Registers Laravel call semantics through the framework-neutral model API. |
| CallbackModel @visibility root | SqlCatalog\Extension\Laravel | Models nested predicates and source-declared local scopes through shared callback execution. |
| Clauses @visibility root | SqlCatalog\Extension\Laravel | Projection, ordering, grouping, having and join effects on a query state. |
| Grammar @visibility root | SqlCatalog\Extension\Laravel | Laravel identifier wrapping and ordered SQL fragments for the selected grammar. |
| LaravelExtension @visibility root | SqlCatalog\Extension\Laravel | Laravel's raw SQL calls and Query Builder/Eloquent execution boundaries. |
| ModelMetadata @visibility root | SqlCatalog\Extension\Laravel | Reads source-declared model metadata without loading model or framework code. |
| Predicates @visibility root | SqlCatalog\Extension\Laravel | Predicate effects, retaining Laravel's clause and binding order. |
| QueryState @visibility root | SqlCatalog\Extension\Laravel | A query's immutable fields, carried through the shared object memory. |
| SelectCompiler @visibility root | SqlCatalog\Extension\Laravel | Compiles a read after all query mutations have run. |
| WriteCompiler @visibility root | SqlCatalog\Extension\Laravel | Compiles literal-shaped writes while preserving their value domains. |
| MysqliExtension @visibility root | SqlCatalog\Extension\Mysqli | The mysqli API, in both its object and its procedural form. |
| PdoExtension @visibility root | SqlCatalog\Extension\Pdo | The PDO API, which every other extension's statements eventually reach. |
| WordPressExtension @visibility root | SqlCatalog\Extension\WordPress | WordPress's wpdb, where nearly all of the SQL an installation issues is written. |
| AnalysisOptions public API | SqlCatalog\Facade | What one analysis run is asked to do. |
| Analyzer public API | SqlCatalog\Facade | Reads PHP source and reports the SQL statements it can issue. |
| Builtins @visibility root | SqlCatalog\Facade | Composition of the implementations shipped by the package. |
| Configuration @visibility root | SqlCatalog\Facade | Catalog settings read from a YAML document. |
| ConfigurationSchema @visibility root | SqlCatalog\Facade | Validates the documented catalog settings and resolves their filesystem paths. |
| InvalidConfigurationException @visibility root | SqlCatalog\Facade | A requested configuration could not be loaded. |
| Dialect @visibility root | SqlCatalog\Platform\MySql | MySql identifier and insert spelling. |
| SqlFormatter @visibility root | SqlCatalog\Platform\MySql | Formats MySql SQL for catalog reports. |
| Dialect @visibility root | SqlCatalog\Platform\PostgreSql | PostgreSql identifier and insert spelling. |
| SqlFormatter @visibility root | SqlCatalog\Platform\PostgreSql | Formats PostgreSql SQL for catalog reports. |
| Dialect @visibility root | SqlCatalog\Platform\Sqlite | Sqlite identifier and insert spelling. |
| SqlFormatter @visibility root | SqlCatalog\Platform\Sqlite | Formats Sqlite SQL for catalog reports. |
| CatalogIndex @visibility root | SqlCatalog\Reporter\Html | The catalog grouped along every route a reader can take to a statement. |
| CatalogStatistics @visibility root | SqlCatalog\Reporter\Html | The counts the report is read through. |
| HtmlReporter @visibility root | SqlCatalog\Reporter\Html | Writes the catalog as a site of linked HTML pages. |
| HtmlText @visibility root | SqlCatalog\Reporter\Html | The text primitives every page of the report is written with. |
| PageShell @visibility root | SqlCatalog\Reporter\Html | The document every page of the report is written into. |
| Palette @visibility root | SqlCatalog\Reporter\Html | Which hue each fact about a statement is written in. |
| ReportAssets @visibility root | SqlCatalog\Reporter\Html | The stylesheets and the scripts the pages are read with. |
| ReportSite @visibility root | SqlCatalog\Reporter\Html | The pages the report is made of, and the address of everything on them. |
| Scope @visibility root | SqlCatalog\Reporter\Html | Where in the program a statement is issued, read out of the enclosing function's name. |
| SearchIndex @visibility root | SqlCatalog\Reporter\Html | The index the search box reads, written as a script beside the pages. |
| SqlFormatter @visibility root | SqlCatalog\Reporter\Html | Formats report SQL with sql-formatter's expanded layout. |
| SqlHighlighter @visibility root | SqlCatalog\Reporter\Html | Renders a reconstructed statement as marked-up SQL. |
| StatementList @visibility root | SqlCatalog\Reporter\Html | A listing of statements that a reader can narrow down on the page. |
| StatementRow @visibility root | SqlCatalog\Reporter\Html | One statement as a row of a listing. |
| TableName @visibility root | SqlCatalog\Reporter\Html | A table name as the report reads it: the schema it is qualified with, and how much of it is known. |
| ClassPage @visibility root | SqlCatalog\Reporter\Html\Page | One class: the statements each of its methods issues. |
| FileIndexPage @visibility root | SqlCatalog\Reporter\Html\Page | Every file the statements are written in, under the directory that holds it. |
| FilePage @visibility root | SqlCatalog\Reporter\Html\Page | One file: the statements each function in it issues. |
| FindingPage @visibility root | SqlCatalog\Reporter\Html\Page | Everything worth reporting: where to look first, then every finding under its rule. |
| NamespacePage @visibility root | SqlCatalog\Reporter\Html\Page | Every namespace, with the classes and functions under it that issue statements. |
| OverviewPage @visibility root | SqlCatalog\Reporter\Html\Page | The page a reader opens first: the routes to a statement, and what needs looking at. |
| StatementIndexPage @visibility root | SqlCatalog\Reporter\Html\Page | Every statement, to be narrowed down from any direction. |
| StatementPage @visibility root | SqlCatalog\Reporter\Html\Page | One statement, with everything the analysis established about it. |
| TableIndexPage @visibility root | SqlCatalog\Reporter\Html\Page | Every table the catalog names, with how each is used. |
| TablePage @visibility root | SqlCatalog\Reporter\Html\Page | One table: what reads it, what writes it, what alters it, and from where. |
| SourceCode @visibility root | SqlCatalog\Reporter\Html\Source | The analyzed PHP source, with numbered lines and the database calls marked. |
| JsonReporter @visibility root | SqlCatalog\Reporter\Json | Writes the catalog as JSON, in an order two runs can be compared in. |
| TextReporter @visibility root | SqlCatalog\Reporter\Text | Writes the catalog as plain lines, for reading in a terminal. |