classCatalogEntry
final class CatalogEntry
One syntactic SQL candidate. Runtime reachability is not assessed.
Properties§
public string $idpublic StatementKind $kindpublic TextPattern $patternpublic list<string> $tablespublic list<Placeholder> $placeholderspublic CallSite $sitepublic list<Finding> $findingspublic list<string> $through = []public bool $truncated = falsepublic bool $siteClosed = trueMethods§
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
$id | string | The identifier the statement keeps across runs |
$kind | StatementKind | What the statement does |
$pattern | TextPattern | The statement text, with a gap wherever a value is spliced in |
$tables | list<string> | The tables the statement names |
$placeholders | list<Placeholder> | The bind parameters, in order |
$site | CallSite | Where the statement is issued |
$findings | list<Finding> | What is worth reporting about the statement |
$correlated | bool | Whether values kept their structural pairing, without a reachability guarantee |
$through | list<string> | The path taken to this reading, from the body the walk started in, outermost first |
$truncated | bool | Whether a bound — on loop passes, callers or ways in — cut the search short of every way the statement can be |
$siteClosed | bool | Whether every sibling candidate at this call site has closed dependencies |
public function resolution(): ResolutionHow far the analyzer got with the statement, and why it got no further.
Returns
Test cases 5
CatalogEntryTest::testResolutionReadsHowFarTheAnalyzerGotcallsAnalyzerTest::testAnElementReadUnderAnUnknownKeyGivesOneStatementPerElementcallsAnalyzerTest::testAnUndeterminedStatementSaysWhyItIsUndeterminedcallsAnalyzerTest::testIssetGuardsAConditionallyAssignedSqlFragmentcallsAnalyzerTest::testIssetSqlFragmentsKeepBothSyntacticBranchescalls
Called from 14
- method-call SqlCatalog\Core\Catalog\CatalogEntry::searchClosed() packages/sql-catalog/src/Core/Catalog/CatalogEntry.php:64
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::title() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:96
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:136
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:156
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:157
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:158
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:159
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::facts() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:182
- method-call SqlCatalog\Reporter\Html\SearchIndex::entryToArray() packages/sql-catalog/src/Reporter/Html/SearchIndex.php:65
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:74
- method-call SqlCatalog\Reporter\Html\StatementRow::sql() packages/sql-catalog/src/Reporter/Html/StatementRow.php:98
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:127
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:172
- method-call SqlCatalog\Reporter\Text\TextReporter::statusLine() packages/sql-catalog/src/Reporter/Text/TextReporter.php:93
Calls 1
- static-call Resolution::of() line 50
public function searchClosed(): boolWhether 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
boolTest cases 7
EntryFactoryTest::testBuildSharesSearchCompletionAcrossEveryCandidatecallsCatalogEntryTest::testSearchClosedOnlyWhenTheResolutionIsClosedAndNoBoundCutItShortcallsAnalyzerTest::testAHelperReturnCutShortByTheLoopBudgetCannotCloseTheCallercallsAnalyzerTest::testAnElementReadUnderAnUnknownKeyGivesOneStatementPerElementcallsAnalyzerTest::testIssetGuardsAConditionallyAssignedSqlFragmentcallsAnalyzerTest::testIssetSqlFragmentsKeepBothSyntacticBranchescallsAnalyzerTest::testUncertainWritesRemainOpenInsteadOfBecomingEmptycalls
Called from 4
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::facts() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:189
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:78
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:173
- method-call SqlCatalog\Reporter\Text\TextReporter::statusLine() packages/sql-catalog/src/Reporter/Text/TextReporter.php:94
Calls 1
- method-call CatalogEntry::resolution() line 64
public function sql(): stringThe statement text, with every gap shown as {$}.
Returns
stringTest cases 21
EntryFactoryTest::testBuildKeepsAnUndeterminedReadingBesideAResolvedOnecallsCatalogEntryTest::testSqlWritesThePatternWithItsGapscallsAnalyzerTest::testACallSiteSurvivesSittingInAnOperandNothingNeedsTheValueOfcallsAnalyzerTest::testAHandleReachedThroughAGlobalIsRecognisedWhenSomethingSaysWhatItIscallsAnalyzerTest::testAnalyzeSourceBoundsDestructuredAlternativesBeforeTheyExhaustMemorycallsAnalyzerTest::testAnalyzeSourceDoesNotLoseAlternativesWhenMutatingAJoinedBuildercallsAnalyzerTest::testAnalyzeSourceKeepsConditionalMutationsAsAlternativescallsAnalyzerTest::testAnalyzeSourceListsTheCountAndPageStatementsOfPaginatecallsAnalyzerTest::testAnalyzeSourcePreservesShortCircuitAlternativesOnTrackedBuilderscallsAnalyzerTest::testAnalyzeSourceReportsBothOutcomesOfAConditionalBuilderCallbackcallsAnalyzerTest::testAnalyzeSourceSupportsRegisteredQueryModelsWithoutLaravelcallsAnalyzerTest::testAnElementReadUnderAnUnknownKeyGivesOneStatementPerElementcallsAnalyzerTest::testAResolvedCallerDoesNotDeleteAnUndeterminedOnecallsAnalyzerTest::testAStaticPropertyNothingAssignsReadsLikeAConstantcallsAnalyzerTest::testIssetDoesNotDiscardAnUnknownSqlFragmentcallsAnalyzerTest::testIssetGuardsAConditionallyAssignedSqlFragmentcallsAnalyzerTest::testIssetSqlFragmentsKeepBothSyntacticBranchescallsAnalyzerTest::testUncertainWritesRemainOpenInsteadOfBecomingEmptycallsAnalyzerTest::testUnconditionalCandidatesNormalizeOnlyWhenStringifiedcallsAnalyzerTest::testValuesDecidedByNestedBranchesStayTogethercallsAnalyzerTest::testValuesDecidedByOneBranchStayTogethercalls
Called from 2
Calls 1
- method-call TextPattern::display() line 72
public function parts(): list<StatementPart>The statement as the parts it is known in: runs of text and the gaps between them.
Returns
list<StatementPart>Test cases 1
Called from 5
- method-call SqlCatalog\Core\Catalog\CatalogEntry::firstGap() packages/sql-catalog/src/Core/Catalog/CatalogEntry.php:90
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:145
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:147
- method-call SqlCatalog\Reporter\Html\SearchIndex::entryToArray() packages/sql-catalog/src/Reporter/Html/SearchIndex.php:59
- method-call SqlCatalog\Reporter\Html\StatementRow::sql() packages/sql-catalog/src/Reporter/Html/StatementRow.php:99
Calls 1
- static-call StatementPart::of() line 82
public function firstGap(): ?StatementPartThe first gap in the statement, or null when there is none.
Returns
Test cases 1
Called from 2
Calls 1
- method-call CatalogEntry::parts() line 90
public function isExact(): boolWhether every character of the statement is known.
Returns
boolTest cases 3
Called from 1
Calls 1
- method-call TextPattern::isExact() line 104
public function severity(): SeverityThe highest severity among the findings, or Info when there are none.
Returns
Test cases 2
Called from 5
- method-call SqlCatalog\Core\Filter\CatalogFilter::matchesSeverity() packages/sql-catalog/src/Core/Filter/CatalogFilter.php:178
- method-call SqlCatalog\Reporter\Html\CatalogStatistics::flagged() packages/sql-catalog/src/Reporter/Html/CatalogStatistics.php:202
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:75
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:131
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:132
Calls 1
- class-const Severity::Info() line 112
public function hasFinding(FindingRule $rule): boolWhether the statement carries a finding of the given rule.
Parameters
$rule | FindingRule |
Returns
boolTest 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
CatalogEntryTest::testFirstGapIsTheFirstOneOrNothingWhenThereIsNonecallsCatalogEntryTest::testHasFindingLooksForOneRulecallsCatalogEntryTest::testIsExactWhenNothingIsLeftOpencallsCatalogEntryTest::testPartsAreTheRunsAndGapsTheStatementIsKnownIncallsCatalogEntryTest::testResolutionReadsHowFarTheAnalyzerGotcallsCatalogEntryTest::testSearchClosedOnlyWhenTheResolutionIsClosedAndNoBoundCutItShortcallsCatalogEntryTest::testSeverityIsInformationalWithoutFindingscallsCatalogEntryTest::testSeverityIsTheHighestOfTheFindingscallsCatalogEntryTest::testSqlWritesThePatternWithItsGapscallsCatalogEntryTest::testTheAlternativesAreMarkedAsReachableOrNotcalls
Other tests reaching this symbol 191
CatalogCommandTestcallsEntryFactoryTest::testBuildKeepsAnUndeterminedReadingBesideAResolvedOnecallsEntryFactoryTest::testBuildKeepsBothReadingsOfTheSameCallcallsEntryFactoryTest::testBuildNumbersEachFurtherTwinOnceMorecallsEntryFactoryTest::testBuildSharesSearchCompletionAcrossEveryCandidatecallsEntryFactoryTest::testCountMismatchStaysQuietWhenTheCallSiteHasAlternativescallsExpressionEvaluatorTestcallsCatalogTest::testEntriesAreReturnedInTheOrderTheyWereGivencallsCatalogTest::testFilterKeepsOnlyWhatTheTestAcceptscallsCatalogTest::testFindLooksUpAStatementByItsIdentifiercallsCatalogTest::testGetIteratorWalksTheStatementscallsCatalogTest::testSortedOrdersByWhereTheStatementIsIssuedcallsCatalogTest::testSourceSurvivesFilteringSortingAndMergingcallsCatalogFilterTest::testApplyKeepsEverythingWhenTheFilterIsEmptycallsCatalogFilterTest::testApplyKeepsOnlyTheMatchingStatementscallsCatalogFilterTest::testMatchesFunctionAcceptsTheShortNameOrTheQualifiedOnecallsCatalogFilterTest::testMatchesFunctionHandlesAFreeFunctioncallsCatalogFilterTest::testMatchesFunctionIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesKindComparesTheStatementKindcallsCatalogFilterTest::testMatchesNamespaceComparesThePrefixOfTheEnclosingFunctioncallsCatalogFilterTest::testMatchesNamespaceIgnoresALeadingBackslashOnEitherSidecallsCatalogFilterTest::testMatchesPathAcceptsADirectoryWrittenWithATrailingSlashcallsCatalogFilterTest::testMatchesPathAcceptsAPatternOrADirectorycallsCatalogFilterTest::testMatchesRequiresEveryGivenCriterioncallsCatalogFilterTest::testMatchesSeverityKeepsWhatIsAtLeastAsSeverecallsCatalogFilterTest::testMatchesSinkComparesTheCallIdentifiercallsCatalogFilterTest::testMatchesTableIgnoresCasecallsCallModelTestcallsAnalyzerTest::testACallSiteSurvivesSittingInAnOperandNothingNeedsTheValueOfcallsAnalyzerTest::testAHandleReachedThroughAGlobalIsRecognisedWhenSomethingSaysWhatItIscallsAnalyzerTest::testAHelperReturnCutShortByTheLoopBudgetCannotCloseTheCallercallsAnalyzerTest::testAnalyzeSourceBoundsDestructuredAlternativesBeforeTheyExhaustMemorycallsAnalyzerTest::testAnalyzeSourceDoesNotLoseAlternativesWhenMutatingAJoinedBuildercallsAnalyzerTest::testAnalyzeSourceKeepsConditionalMutationsAsAlternativescallsAnalyzerTest::testAnalyzeSourceListsTheCountAndPageStatementsOfPaginatecallsAnalyzerTest::testAnalyzeSourcePreservesShortCircuitAlternativesOnTrackedBuilderscallsAnalyzerTest::testAnalyzeSourceReportsBothOutcomesOfAConditionalBuilderCallbackcallsAnalyzerTest::testAnalyzeSourceSupportsRegisteredQueryModelsWithoutLaravelcallsAnalyzerTest::testAnElementReadUnderAnUnknownKeyGivesOneStatementPerElementcallsAnalyzerTest::testAnUndeterminedStatementSaysWhyItIsUndeterminedcallsAnalyzerTest::testAResolvedCallerDoesNotDeleteAnUndeterminedOnecallsAnalyzerTest::testAStaticPropertyNothingAssignsReadsLikeAConstantcallsAnalyzerTest::testIssetDoesNotDiscardAnUnknownSqlFragmentcallsAnalyzerTest::testIssetGuardsAConditionallyAssignedSqlFragmentcallsAnalyzerTest::testIssetSqlFragmentsKeepBothSyntacticBranchescallsAnalyzerTest::testSortRecordsIsCalledWithTheEntriescallsAnalyzerTest::testSortRecordsOrdersByWhereTheStatementIsIssuedcallsAnalyzerTest::testUncertainWritesRemainOpenInsteadOfBecomingEmptycallsAnalyzerTest::testUnconditionalCandidatesNormalizeOnlyWhenStringifiedcallsAnalyzerTest::testValuesDecidedByNestedBranchesStayTogethercallsAnalyzerTest::testValuesDecidedByOneBranchStayTogethercallsCatalogIndexTest::testAlongsideCountsTheTablesNamedWithOnecallsCatalogIndexTest::testByClassAndByNamespaceOrderNamesWithoutRegardToCasecallsCatalogIndexTest::testByClassGroupsMethodsUnderTheirClasscallsCatalogIndexTest::testByDirectoryGroupsFilesUnderTheirDirectorycallsCatalogIndexTest::testByFileIsInPathOrdercallsCatalogIndexTest::testByFunctionKeepsTheOrderFunctionsAreMetcallsCatalogIndexTest::testByNamespaceListsTheGlobalNamespaceFirstcallsCatalogIndexTest::testByRuleListsTheMostReportedRuleFirstcallsCatalogIndexTest::testByTableBreaksTiesByNamecallsCatalogIndexTest::testByTableListsTheMostNamedTableFirstcallsCatalogIndexTest::testEntriesAreInReportingOrdercallsCatalogIndexTest::testFunctionsOfCountsMostFirstcallsCatalogIndexTest::testHotspotsKeepCountingPastAStatementNothingWasReportedOncallsCatalogIndexTest::testHotspotsRankFunctionsByWhatWasReportedcallsCatalogIndexTest::testTablesOfCountsMostNamedFirstcallsCatalogIndexTest::testUsageCountsReadsWritesSchemaAndAttentioncallsCatalogIndexTest::testUsageOfCountsTruncateAsASchemaChangecallsCatalogIndexTest::testUsageOfTellsAReadFromAnotherStatementThatChangesNoRowcallsCatalogStatisticsTest::testAtLeastCountsTheStatementsWorthLookingAtcallsCatalogStatisticsTest::testByKindCountsTheKindsMostFirstcallsCatalogStatisticsTest::testByResolutionAccountsForEveryStatementUnderEveryResolutioncallsCatalogStatisticsTest::testByRuleCountsTheFindingsMostFirstcallsCatalogStatisticsTest::testFilesSayWhatWasFoundInEachOfThemcallsCatalogStatisticsTest::testFindingsCountsEveryFindingOfEveryStatementcallsCatalogStatisticsTest::testFlaggedListsTheReportedStatementsWorstFirstcallsCatalogStatisticsTest::testOpenCountsTheStatementsWhoseSearchDidNotClosecallsCatalogStatisticsTest::testResolvedCountsTheStatementsWithNoGapscallsCatalogStatisticsTest::testStatementsCountsWhatTheCatalogHoldscallsCatalogStatisticsTest::testTablesSayHowEachOneIsUsedcallsHtmlReporterTest::testClassPagesWriteOneDocumentPerClasscallsHtmlReporterTest::testFilePagesWriteOneDocumentPerFilecallsHtmlReporterTest::testRenderIncludesSourceForUnresolvedAndUnanalyzedCallsAndParseFailurescallsHtmlReporterTest::testRenderKeepsACallNoStatementWasReadFromApartFromAStatementcallsHtmlReporterTest::testRenderLinksEveryRouteToTheStatementsPagecallsHtmlReporterTest::testRenderWritesTheTrailToEveryPagecallsHtmlReporterTest::testRenderWritesTheWholeSiteOfPagescallsHtmlReporterTest::testStatementPagesWriteOneDocumentPerStatementcallsHtmlReporterTest::testTablePagesWriteOneDocumentPerTablecallsClassPageTest::testAnchorsNameTheTablesAndEveryMethodcallsClassPageTest::testContextListsTheMethodsAndTheClassesOfTheSameNamespacecallsClassPageTest::testMethodsAreInTheOrderTheyAreWrittencallsClassPageTest::testRenderIsWrittenExactlycallsClassPageTest::testRenderListsTheStatementsMethodByMethodcallsClassPageTest::testSectionsHeadEachMethodWithWhereItStartscallsFileIndexPageTest::testAnchorsNameEveryDirectorycallsFileIndexPageTest::testRenderIsWrittenExactlycallsFileIndexPageTest::testRenderListsFilesUnderTheirDirectoriescallsFileIndexPageTest::testRowCountsWhatWasFoundInTheFilecallsFileIndexPageTest::testSectionIsASortableTableOfTheDirectorysFilescallsFilePageTest::testAnchorsNameTheTablesAndEveryFunctioncallsFilePageTest::testContextListsTheFunctionsAndTheFilesOfTheSameDirectorycallsFilePageTest::testContextNamesTheRootDirectorycallsFilePageTest::testFunctionsAreInTheOrderTheyAreWrittencallsFilePageTest::testRenderIsWrittenExactlycallsFilePageTest::testRenderListsTheStatementsFunctionByFunctioncallsFilePageTest::testSectionsLeadFromAMethodToItsClasscallsFilePageTest::testTablesLinkToTheTablesNamedcallsFindingPageTest::testAnchorsNameTheHotspotsAndEveryRulecallsFindingPageTest::testHotspotsLinkEachFunctionAndAreSilentWhenNothingIsFlaggedcallsFindingPageTest::testRenderIsWrittenExactlycallsFindingPageTest::testRenderOpensWithWhereToLookAndThenListsEveryRulecallsNamespacePageTest::testAnchorsNameEveryNamespacecallsNamespacePageTest::testMembersListClassesBeforeFunctionscallsNamespacePageTest::testMembersOrderNamesWithoutRegardToCasecallsNamespacePageTest::testRenderIsWrittenExactlycallsNamespacePageTest::testRenderListsEveryNamespaceWithWhatIsDeclaredInItcallsNamespacePageTest::testSectionLeadsFromAClassToItsPageAndFromAFunctionToItsFilecallsOverviewPageTest::testAttentionListsRulesAndTheFunctionsFlaggedMostcallsOverviewPageTest::testCoverageLeadsFromEverySegmentToTheStatementsItCountscallsOverviewPageTest::testFactsLinkEachCountToItsRoutecallsOverviewPageTest::testFileRouteListsTheFilesWithTheMostStatementscallsOverviewPageTest::testKindRouteLeadsToTheListingNarrowedByKindcallsOverviewPageTest::testNamespaceRouteListsClassesOrFallsBackToFunctionscallsOverviewPageTest::testRenderIsWrittenExactlycallsOverviewPageTest::testRenderLaysOutEveryRouteToAStatementcallsOverviewPageTest::testTableRouteListsTheMostNamedTablesWithHowTheyAreUsedcallsStatementIndexPageTest::testRenderIsWrittenExactlycallsStatementIndexPageTest::testRenderListsEveryStatementUnderTheFacetsThatNarrowItcallsStatementPageTest::testBodyDoesNotDressUpACallNoStatementWasReadFromcallsStatementPageTest::testBodyLaysTheStatementOutAndKeepsTheSourceFormcallsStatementPageTest::testBodyUsesTheSameNamedGapInTheCopyableAndSourceBlockscallsStatementPageTest::testCaveatsWarnAboutWhatTheStatementDoesNotSaycallsStatementPageTest::testContextLeadsToEveryPlaceTheStatementBelongsToAndTheRestOfItsFunctioncallsStatementPageTest::testContextOfTopLevelCodeLeadsOnlyToItsFilecallsStatementPageTest::testFactsLinkTheTablesAndExplainTheReadingcallsStatementPageTest::testFindingsCarryTheirRuleAndSeveritycallsStatementPageTest::testRelatedListsTheFirstOfTheRestAndOnlyTheFirstTwoTablescallsStatementPageTest::testRelatedPointsAtTheRestWhenThereIsMoreThanItListscallsStatementPageTest::testRenderCarriesEverythingKnownAboutTheStatementcallsStatementPageTest::testRenderIsWrittenExactlycallsStatementPageTest::testRenderLeavesOutTheValuesWhenTheStatementTakesNonecallsStatementPageTest::testRenderOfACallNothingWasReadFromIsWrittenExactlycallsStatementPageTest::testRenderShowsUnanalyzedSourceBetweenTheCaveatAndStatementFactscallsStatementPageTest::testTitleNamesTheTablesOrSaysWhyThereAreNonecallsStatementPageTest::testValuesListTheBindParameterscallsStatementPageTest::testWhereLinksEveryPlaceAndNamesThePathTakencallsStatementPageTest::testWhereSaysNothingAboutThePathWhenTheStatementIsReadWhereItIsWrittencallsTableIndexPageTest::testRenderDoesNotGroupWhenNoTableIsQualifiedcallsTableIndexPageTest::testRenderGroupsTablesBySchemaWhenAnyIsQualifiedcallsTableIndexPageTest::testRenderIsWrittenExactlycallsTableIndexPageTest::testRowCountsHowTheTableIsUsedAndMarksAGapInItsNamecallsTablePageTest::testAlongsideIsSilentWhenTheTableIsNamedAlonecallsTablePageTest::testAnchorsFollowTheSectionsPresentcallsTablePageTest::testContextListsTheSectionsAndEveryOtherTablecallsTablePageTest::testGroupsListOnlyTheUsesPresentcallsTablePageTest::testRenderIsWrittenExactlycallsTablePageTest::testRenderSaysWhatUsesTheTableAndListsItsStatementsByWhatTheyDocallsTablePageTest::testUsedFromLinksEachFunctionAndSaysWhatItDoescallsPageShellTest::testRenderIsWrittenExactlycallsPageShellTest::testRoutesMarkTheRouteBeingReadAndCountWhatEachHoldscallsPageShellTest::testSidebarWritesTheRoutesAndThenWhatThePageIsLeftFromcallsReportSiteTest::testCatalogIsHeldInReportingOrdercallsReportSiteTest::testClassesAreInNameOrdercallsReportSiteTest::testClassPageFallsBackToTheListingForAnUnknownClasscallsReportSiteTest::testFilePageFallsBackToTheListingForAnUnknownFilecallsReportSiteTest::testFilesAreInPathOrdercallsReportSiteTest::testFunctionUrlLeadsToTheClassPageForAMethodAndTheFilePageOtherwisecallsReportSiteTest::testIndexGroupsTheCatalogcallsReportSiteTest::testStatisticsCountTheCatalogcallsReportSiteTest::testTablePageFallsBackToTheListingForAnUnknownTablecallsReportSiteTest::testTablesAreMostNamedFirstcallsSearchIndexTest::testEntryToArrayCarriesWhatTheSearchReadscallsSearchIndexTest::testEntryToArrayMakesTheVariableNameSearchablecallsSearchIndexTest::testRenderWritesTheIndexAsAScriptThePagesLoadcallsSourceCodeTest::testExcerptClipsAtTheStartAndEndOfTheFilecallsSourceCodeTest::testExcerptOmitsUnavailableSourceWithoutReadingTheFilesystemcallsSourceCodeTest::testExcerptShowsContextAndLinksToTheHighlightedCallInTheFullFilecallsSourceCodeTest::testFileIncludesAllLinesAndMarksEveryCallcallsStatementListTest::testFacetsIsWrittenExactlycallsStatementListTest::testFacetsOfferOnlyWhatWouldNarrowTheListingcallsStatementListTest::testRowsListEveryStatementAndSaySoWhenThereIsNonecallsStatementRowTest::testAttributesCarryEveryFactAListingIsNarrowedBycallsStatementRowTest::testAttributesNameARuleOnceHoweverOftenItWasReportedcallsStatementRowTest::testMetaNamesTheFunctionUnlessTheListingAlreadyDoescallsStatementRowTest::testMetaOmitsWhatTheListingAlreadyStatesAndShowsWhatIsNotOrdinarycallsStatementRowTest::testRenderLinksTheStatementAndWhereItIsIssuedRelativeToThePagecallsStatementRowTest::testSqlDisplaysThePhpVariableForAnUnknownStatementcallsStatementRowTest::testSqlDoesNotDressUpACallNoStatementWasReadFromcallsJsonReporterTestcallsTextReporterTest::testStatusLineWarnsWhenTheSearchDidNotClosecalls
Relations§
Instantiated in 2
Method calls 31
- method-call SqlCatalog\Core\Filter\CatalogFilter::matchesSeverity() packages/sql-catalog/src/Core/Filter/CatalogFilter.php:178
- method-call SqlCatalog\Reporter\Html\CatalogStatistics::flagged() packages/sql-catalog/src/Reporter/Html/CatalogStatistics.php:202
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::title() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:96
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:136
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:137
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:145
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::body() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:147
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:156
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:157
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:158
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::caveats() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:159
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::facts() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:182
- method-call SqlCatalog\Reporter\Html\Page\StatementPage::facts() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:189
- method-call SqlCatalog\Reporter\Html\SearchIndex::entryToArray() packages/sql-catalog/src/Reporter/Html/SearchIndex.php:59
- method-call SqlCatalog\Reporter\Html\SearchIndex::entryToArray() packages/sql-catalog/src/Reporter/Html/SearchIndex.php:65
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:74
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:75
- method-call SqlCatalog\Reporter\Html\StatementRow::attributes() packages/sql-catalog/src/Reporter/Html/StatementRow.php:78
- method-call SqlCatalog\Reporter\Html\StatementRow::sql() packages/sql-catalog/src/Reporter/Html/StatementRow.php:98
- method-call SqlCatalog\Reporter\Html\StatementRow::sql() packages/sql-catalog/src/Reporter/Html/StatementRow.php:99
- method-call SqlCatalog\Reporter\Html\StatementRow::sql() packages/sql-catalog/src/Reporter/Html/StatementRow.php:101
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:127
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:131
- method-call SqlCatalog\Reporter\Html\StatementRow::meta() packages/sql-catalog/src/Reporter/Html/StatementRow.php:132
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:170
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:171
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:172
- method-call SqlCatalog\Reporter\Json\JsonReporter::entryToArray() packages/sql-catalog/src/Reporter/Json/JsonReporter.php:173
- method-call SqlCatalog\Reporter\Text\TextReporter::entryLines() packages/sql-catalog/src/Reporter/Text/TextReporter.php:75
- method-call SqlCatalog\Reporter\Text\TextReporter::statusLine() packages/sql-catalog/src/Reporter/Text/TextReporter.php:93
- method-call SqlCatalog\Reporter\Text\TextReporter::statusLine() packages/sql-catalog/src/Reporter/Text/TextReporter.php:94
Type declarations 37
- type SqlCatalog\Core\Analysis\EntryFactory packages/sql-catalog/src/Core/Analysis/EntryFactory.php:82
- type SqlCatalog\Core\Analysis\EntryFactory packages/sql-catalog/src/Core/Analysis/EntryFactory.php:142
- type SqlCatalog\Core\Catalog\Catalog packages/sql-catalog/src/Core/Catalog/Catalog.php:84
- type SqlCatalog\Core\Catalog\Catalog::sorted() packages/sql-catalog/src/Core/Catalog/Catalog.php:123
- type SqlCatalog\Core\Filter\CatalogFilter::apply() packages/sql-catalog/src/Core/Filter/CatalogFilter.php:61
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:67
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:81
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:99
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:121
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:141
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:149
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:168
- type SqlCatalog\Core\Filter\CatalogFilter packages/sql-catalog/src/Core/Filter/CatalogFilter.php:176
- type SqlCatalog\Reporter\Html\CatalogIndex packages/sql-catalog/src/Reporter/Html/CatalogIndex.php:201
- type SqlCatalog\Reporter\Html\CatalogStatistics::flagged() packages/sql-catalog/src/Reporter/Html/CatalogStatistics.php:201
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:74
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:94
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:113
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:134
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:153
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:180
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:208
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:253
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:272
- type SqlCatalog\Reporter\Html\Page\StatementPage packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:301
- type SqlCatalog\Reporter\Html\Page\StatementPage::related() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:306
- type SqlCatalog\Reporter\Html\Page\StatementPage::related() packages/sql-catalog/src/Reporter/Html/Page/StatementPage.php:315
- type SqlCatalog\Reporter\Html\ReportSite packages/sql-catalog/src/Reporter/Html/ReportSite.php:184
- type SqlCatalog\Reporter\Html\SearchIndex packages/sql-catalog/src/Reporter/Html/SearchIndex.php:56
- type SqlCatalog\Reporter\Html\Source\SourceCode packages/sql-catalog/src/Reporter/Html/Source/SourceCode.php:36
- type SqlCatalog\Reporter\Html\StatementRow packages/sql-catalog/src/Reporter/Html/StatementRow.php:50
- type SqlCatalog\Reporter\Html\StatementRow packages/sql-catalog/src/Reporter/Html/StatementRow.php:65
- type SqlCatalog\Reporter\Html\StatementRow packages/sql-catalog/src/Reporter/Html/StatementRow.php:96
- type SqlCatalog\Reporter\Html\StatementRow packages/sql-catalog/src/Reporter/Html/StatementRow.php:112
- type SqlCatalog\Reporter\Json\JsonReporter packages/sql-catalog/src/Reporter/Json/JsonReporter.php:152
- type SqlCatalog\Reporter\Text\TextReporter packages/sql-catalog/src/Reporter/Text/TextReporter.php:70
- type SqlCatalog\Reporter\Text\TextReporter packages/sql-catalog/src/Reporter/Text/TextReporter.php:91