PluginProbe
404 Solution / trunk
404 Solution vtrunk
4.3.5 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.2.0 4.1.19 4.1.18 4.1.17 4.1.16 4.1.15 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.1.7 4.1.6 4.1.5 4.1.4 4.1.3 trunk 2.30.0 All 109 releases
404-solution / includes / classmap.php

classmap.php in 404 Solution trunk, at includes/classmap.php

391 lines 23.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!defined('ABSPATH')) {
4 exit;
5 }
6
7 // Deterministic classmap, so the autoloader never has to glob() at runtime.
8 //
9 // Stored as "which classes live in which includes/ subdirectory" rather than
10 // as one path per class, because that is what the data actually is: 481 of the
11 // 488 entries are the same sentence repeated -- class ABJ_404_Solution_Foo
12 // lives in includes/<dir>/Foo.php. Writing that convention once, and listing
13 // only the handful of classes that break it, is what keeps this file
14 // navigable (and under the project's file-size limit) as the plugin grows.
15 //
16 // Adding a class: put its short name (no ABJ_404_Solution_ prefix) in the list
17 // for the directory that holds it. A class whose FILE is not named after it --
18 // several classes sharing one file, or a file renamed without its class --
19 // goes in $abj404ClassFileExceptions instead.
20 // A standalone class omitted from this map must be require_once'd by every production file that loads or statically references it.
21 //
22 // Grepping: search the short name (`grep -rn "SpellChecker" includes/classmap.php`).
23 // The fully prefixed class name appears here only for the exceptions.
24
25 $base = dirname(__DIR__) . DIRECTORY_SEPARATOR;
26
27 /**
28 * Class short names by the includes/ subdirectory that holds them.
29 * Each resolves to includes/<directory>/<ShortName>.php.
30 *
31 * @var array<string, array<int, string>> $abj404ClassesByDirectory
32 */
33 $abj404ClassesByDirectory = array(
34 // Includes the admin action handlers (strategy/registry pattern for
35 // handlePluginAction dispatch).
36 'admin' => array(
37 'AdminAssetEnqueuer', 'SetupWizardPresenter', 'RedirectsTableColumns',
38 'RedirectDestinationWarningPolicy', 'RedirectDestinationWarningContext',
39 'RedirectDestinationLinkResolver', 'RedirectRowActionsPresenter', 'RedirectRowPresenter',
40 'RedirectAddModalPresenter', 'RedirectsTablePagePresenter', 'AdminActionsDependencies',
41 'AdminThemeManager', 'AdminRuntimeErrorNotice', 'AdminPageUrlBuilder',
42 ),
43 'admin/actions' => array(
44 'AdminActionHandlerInterface', 'AdminActionRegistry', 'UpdateOptionsHandler',
45 'AddRedirectHandler', 'DeleteRedirectActionHandler', 'StatusLinkActionHandler',
46 'TrashEmptier', 'LegacyImportActionHandler', 'EmptyRedirectTrashHandler',
47 'EmptyCapturedTrashHandler', 'PurgeRedirectsHandler', 'RunMaintenanceHandler',
48 'RebuildNgramCacheHandler', 'ClearSpellingCacheHandler', 'SaveGscSettingsHandler',
49 'ImportFromPluginHandler', 'UndoRegexAutoPromoteHandler', 'BulkActionHandler',
50 'TrashLinkActionHandler', 'EditRedirectHandler', 'RedirectFormResolver',
51 ),
52 'ajax' => array(
53 'AjaxSecurityGate', 'AjaxRequestContractEnforcementPolicy',
54 'AjaxRequestContractSchemaRepository', 'AjaxRequestContractSchemaValidator',
55 'AjaxRequestContractValidator', 'AjaxFailureLogger', 'AjaxFailureDetailsBuilder',
56 'Ajax_CrossPluginImporter', 'Ajax_Php', 'Ajax_UpdateOptions', 'Ajax_RunLazyBackfill',
57 'Ajax_LoadGscSection', 'Ajax_ViewLogs', 'Ajax_RedirectDestinationAutocomplete',
58 'Ajax_TrendData', 'Ajax_SettingsModeToggle', 'Ajax_RestoreDefaults', 'Ajax_PrivacyExport',
59 'Ajax_PrivacyDelete', 'Ajax_SupportRequest', 'Ajax_SupportRequestPreview',
60 'Ajax_SuggestionCompute', 'Ajax_SuggestionPolling', 'Ajax_TrashLink',
61 'Ajax_EngineProfiles', 'Ajax_UninstallPrefs', 'AjaxAdminEndpointRegistrar',
62 'AjaxClientReportBeaconResponder',
63 'AjaxAdminEndpointSupport', 'AjaxResponseEmitter', 'Ajax_GetPaginationLinks',
64 'AdminTableResponseParts', 'MeasuredTableResponseSize',
65 'JsonResponseEncoder', 'EncodedJsonResponse', 'JsonResponseHead', 'AjaxErrorEnvelope', 'AjaxRequestIdScopes',
66 'ResponseCompressionSuppression',
67 'Ajax_RefreshStatsDashboard', 'Ajax_RefreshHealthBar', 'Ajax_RefreshAdminNonces',
68 'Ajax_CanaryLadder', 'AjaxCanaryStepRunner', 'CanarySizeTarget',
69 ),
70 'bootstrap' => array(
71 'CoreServiceRegistration', 'DataServiceRegistration', 'DomainServiceRegistration',
72 'MatchingEngineServiceRegistration', 'Abj404ServiceRegistrationContract',
73 'RuntimeServiceRegistration', 'LegacyInstanceResolver',
74 ),
75 'core' => array(
76 'PluginLogicAdminActions', 'PluginLogicImportExport', 'PluginLogicLifecycle',
77 'PluginLogicPageOrdering', 'PluginLogicSettingsUpdate', 'PluginLogicUrlNormalization',
78 'PluginLogicDefaults', 'InternalLinkScanner', 'LockOwnerStore', 'ExclusiveOptionRow',
79 'DatabaseMetadataLockWaitGuard',
80 'PluginLogicVersionUpgrader', 'PluginLogicOptionsResolver', 'ErrorHandler',
81 'FileSystemService', 'Functions', 'RegexHelper', 'RegexHelperMb', 'RegexHelperPreg',
82 'PermalinkResolver', 'UrlEncoder', 'Sanitizer', 'QueryStringHelper', 'PostRef', 'UserRef',
83 'SiteRef', 'PluginLogic', 'PluginLogicInterface', 'Privacy', 'ServiceContainer', 'Clock',
84 'ExactInteger',
85 'PhpRuntimeCapabilityAdapter', 'PcntlSignalAdapter', 'OpcacheAdapter',
86 'SiteTimezone', 'SiteLocalTimestamp', 'PluginReleaseChannel', 'SetupWizard', 'SynchronizationUtils', 'Timer',
87 'WordPressHookRegistrar', 'WordPress_Connector', 'WordPressConnectorDependencies',
88 'ReviewFeedback', 'RebuildHealthState',
89 ),
90 'database' => array(
91 'DatabaseMetadataReader', 'DatabaseRuntimeState', 'DatabaseCoreInterface', 'DatabaseCore',
92 'DatabaseConnectionManager', 'DatabaseErrorClassifier', 'DatabaseRepairPolicy',
93 'DatabaseQueryRecoveryPolicy', 'DatabaseQueryTimeoutManager', 'DatabaseSqlErrorReporter',
94 'DatabaseQueryInterface', 'DatabaseTableMetadataInterface',
95 'DatabaseQueryBuilderInterface', 'DatabaseErrorRecoveryInterface',
96 'DatabaseRuntimeStateInterface', 'DataAccessDependencies', 'DataAccess',
97 'TrackingDatabaseCore', 'TableIndexDefinitions', 'TableIndexWriter', 'TableReadinessGate', 'ShowIndexRowReader',
98 'CreateTableIndexParser', 'CreateTableColumnParser', 'CreateTableOptionsParser',
99 'IndexDefinitionComparator',
100 ),
101 'database/upgrades' => array(
102 'DatabaseUpgradeCoordinator', 'DatabaseUpgradeComponent',
103 'DatabaseUpgradeComponentRegistry', 'DatabaseUpgradeRuntimeState',
104 'DatabaseUpgradeIndexes', 'DatabaseUpgradeEngineNormalization',
105 'DatabaseUpgradeCollationDrift', 'DatabaseUpgradeSelfHeal',
106 'DatabaseUpgradeAddedColumnBackfill',
107 'DatabaseUpgradeCanonicalUrlBackfill', 'DatabaseUpgradeRedirectsDenormBackfill',
108 'DatabaseUpgradeRedirectsSortKeyBackfill', 'DatabaseUpgradeRedirectsDenormReconcile',
109 'DatabaseUpgradeDailyMaintenance', 'DatabaseUpgradeNGram',
110 'DatabaseUpgradeNGramCacheInitializer', 'DatabaseUpgradePluginUpdate',
111 'DatabaseUpgradeTableRepair', 'DatabaseUpgradeDropStagedViewTables',
112 'DatabaseUpgradeOrphanAdoption', 'DatabaseUpgradeMultiSite', 'DatabaseUpgradeSchemaDiff',
113 'DatabaseUpgradeBootstrap', 'DatabaseTableLowercaseRenamer', 'DatabaseTableDdlExecutor',
114 'DatabaseUpgradesDependencies', 'DatabaseUpgradesEtc',
115 ),
116 'diagnostics' => array(
117 'CrashBeacon', 'CrashBeaconStore', 'CrashBeaconReporter', 'AjaxRequestTrace',
118 'AjaxTeardownRecorder', 'CanonicalRedirectHookCensus', 'CanonicalHookCensusStore', 'HookCallbackRoster',
119 'AjaxCheckpointLogger', 'AjaxCheckpointBoundaryWriter', 'AjaxFrequentCheckpointWriter',
120 'CheckpointRecordFactory', 'CheckpointIntentStore', 'CheckpointIntentCorrelation',
121 'DurableOperationRecorder',
122 'ActiveOperationBreadcrumbs', 'ActiveOperationBoundaryManifest',
123 'CheckpointJournalWriter',
124 'CheckpointJournalReader', 'EncodedTableResponseSize', 'RequiredCheckpointEvidence', 'RequiredCheckpointIdentityEvidence',
125 'CanaryLadderVerdicts', 'CanaryLadderStep', 'CanaryLadderInterpretation',
126 'MalformedCheckpointEvidence',
127 'DecisiveRecordManifest',
128 'DecisiveRecordAuthorizationFamilies',
129 'DecisiveRecordRenderFamilies',
130 'DecisiveRecordRenderOptionIoFamilies',
131 'DecisiveRecordStatusCountFamilies',
132 'DecisiveRecordQueryFilterFamilies',
133 'DecisiveRecordShutdownFamilies',
134 'DecisiveRecordFailureFamilies',
135 'AjaxRequestLedger', 'AjaxDiagnosticRequestPolicy', 'DetachAbExperiment',
136 'DetachAbScope', 'DetachAbAttemptCounter',
137 'AuthorizationLogTracer', 'PostAuthorizationFailureTracer',
138 'TableRenderTranslationTracer', 'DiagnosticInternalHookObserver',
139 'HookInstrumentationRegistration', 'HookInstrumentationRegistry',
140 'DiagnosticAppendStream',
141 'HookRegistryInspectionLedger', 'DiagnosticDirectoryResolver',
142 'RenderOptionIoTracer',
143 'RenderOptionIoOperationJournal',
144 'DatabaseQueryPreflightTracer',
145 'DatabaseQueryRecoveryTracer',
146 'DatabaseQueryFilterTracer',
147 'DetachAbResolutionTracer',
148 'AjaxQueryTimeline', 'AjaxRowLoopProgress', 'CacheMetricsProbeTracer',
149 'RateLimitOperationTracer', 'CacheOperationTraceSink',
150 'HookCallbackIdentity', 'HookInstrumentationLifecycleTracer', 'HookCallbackInstrumenter',
151 'OptionPersistenceTracer', 'RowRenderOperationTracer',
152 'TableRendererPreludeTracer', 'TemplateFileReadTracer', 'RoutineLogTracer',
153 'SortReadinessTracer', 'StatusCountOperationJournal', 'StatusCountsForegroundTracer',
154 'ResponseControlFilterTracer',
155 'ShutdownCallbackTracer',
156 'InstrumentedObjectCache',
157 'AjaxTraceJournal', 'AjaxStageDiagnostics',
158 'ShutdownEnvironmentInventory', 'ShutdownTeardownBracket', 'DiagnosticJournalExcerpt',
159 'DiagnosticJournalFileSelector',
160 'DiagnosticClientVerdict', 'DiagnosticCollectionManifest', 'DiagnosticCollectionManifestRenderer', 'DiagnosticDirectoryProbe',
161 'DiagnosticEvidencePriority', 'DiagnosticEvidenceBudget', 'DetachAbEvidence', 'CanaryReceiptEvidence',
162 'FailingSessionEvidence',
163 'DiagnosticRequestGroup',
164 'HostFilesystemPressureProbe', 'HostPressureSampler', 'HostServerCounterProbe',
165 'SameSiteRequestCensus', 'SameSiteCensusReading', 'SameSiteRequestRegistry',
166 'StrandedRequestLedger',
167 'RequestEnvironmentFingerprint', 'ClientBuildFingerprint', 'DiagnosticModuleManifest',
168 'OpcacheGenerationProbe', 'BootWaypointRecorder',
169 'ClientTransportReport', 'ConcurrentControlReceipt', 'PayloadShapeFingerprint', 'AjaxCanaryPayloadFactory',
170 'AjaxCanaryStreamFlush',
171 'DetachAbAttempt', 'DetachAbVerdict', 'ResponseBodyRewriteVerdict', 'ResponseBodyDeliveryEvidence',
172 'DeliveredTableResponseSize', 'MeasuredBodyBytes', 'BodyDeliveryObservations',
173 'AjaxCanaryReceiptParser', 'DebugLogFileStore', 'DebugLogReader',
174 'DebugLogArchiveBuilder', 'DeveloperLogMailer', 'ToolsDiagnostics',
175 ),
176 'engine' => array(
177 'ArchiveFallbackEngine', 'CategoryTagMatchingEngine', 'ContentMatchingEngine',
178 'SlugMatchingEngine', 'OldPermalinkStructureEngine', 'UrlFixEngine',
179 'SpellingMatchingEngine', 'TitleMatchingEngine',
180 ),
181 'feedback' => array(
182 'FeedbackDatabaseIdentity', 'FeedbackDiagnosticsCollector', 'FeedbackEnvironmentExtras',
183 'FeedbackPluginSettingsSnapshot',
184 'MysqlServerStateProbe', 'PluginSchemaMetadataProbe', 'RollupFreshnessProbe',
185 'FeedbackEnvironmentExtras_HostProbes',
186 'FeedbackEnvironmentExtras_PlatformFingerprint',
187 'FeedbackEnvironmentExtras_CacheFingerprint',
188 'FeedbackEnvironmentExtras_DebugLogSignatures', 'FeedbackSiteTokenStore',
189 'SupportLogExcerpt', 'SupportEvidenceExcerpt', 'CanaryReceiptSupportSection',
190 'FailingSessionSupportSection', 'StrandedRequestSupportSection',
191 'DetachAbVerdictSupportSection', 'CanonicalSuppressionSupportSection',
192 'FeedbackDsrClient', 'FeedbackReportUuid',
193 'FeedbackRuntimeEnvironment', 'FeedbackWordPressInventory', 'SupportRequestButton',
194 'FeedbackTransport', 'PayloadSchema', 'ReportPayloadJsonSchemaValidator',
195 'ErrorEmailDedupeState', 'ErrorEmailBodyFormatter', 'PiiRedactor', 'OpaqueTokenClassifier',
196 'RequestCredentialRedactor', 'SensitiveValueMask',
197 ),
198 'frontend' => array(
199 'FrontendRequestPipeline', 'FrontendPipelineDependencies', 'FrontendLegacyAdapters',
200 'FrontendRuntimeOptions', 'FrontendHitRecorder', 'FrontendAsyncSuggestionTrigger',
201 'FrontendPipelineTrace', 'FrontendDbVersionRecovery', 'FrontendPipelineTelemetry',
202 'RequestContext', 'PostEditorIntegration', 'PublishedPostsProvider', 'ShortCode',
203 'SlugChangeHandler', 'SuggestionPublisher', 'SystemPage',
204 ),
205 'gsc' => array(
206 'GscConfig', 'GscFetchLease', 'GscFetchLock', 'GscFetchLockStore', 'GscOAuthTokenStore', 'GscSearchAnalyticsClient', 'GscAdminSectionRenderer',
207 'GoogleSearchConsole', 'GscOAuthHandler',
208 ),
209 'import' => array(
210 'CrossPluginImporter', 'ForeignRedirectSourceReader', 'ForeignSourceQueryGateway',
211 'ExportService', 'ImportService',
212 ),
213 'logs' => array(
214 'LoggingCapabilityDiagnostics', 'LoggingFeedbackDispatcher', 'LoggingStateStore',
215 'LoggingMessageWriter', 'RoutineLoggingBridge', 'LogTimestampFormatter', 'LogDebugModeResolver',
216 'LogsMetricsReader', 'LogReadQueryInterface', 'LogPrivacyInterface', 'LogWriteInterface',
217 'LogHitsRebuildInterface', 'LogHitsLifecycleInterface', 'LogsHitsRollupServiceInterface',
218 'LogsHitsRollupService', 'LogsHitsTableRebuilder', 'LogsHitsRebuildLock', 'LogsLookupRepository',
219 'LogsPrivacyService', 'LogsReadQueries', 'LogsHitsDataPopulator',
220 'LogsWriteRecoveryPolicy', 'LogsWriter', 'RedirectHitLogEntry', 'LogsRepositoryInterface',
221 'LogsRepository', 'EmailDigest', 'Logging', 'TrackingLogsRepository',
222 ),
223 'matching' => array(
224 'EngineProfileSaveRequest', 'MatchingEngineOrchestrator', 'RedirectCandidateEvaluator',
225 'WordPressGuessFallback', 'EngineProfileResolver', 'EngineProfileRepository',
226 'MatchingEngine', 'MatchRequest',
227 'MatchResult', 'MinimumAutoRedirectScore', 'NearMissMatch', 'NearMissRecorder',
228 'OldPermalinkStructureResolver', 'PermalinkStructureCompiler',
229 'OldPermalinkCandidateStructureProvider', 'OldPermalinkPostResolver',
230 ),
231 'ngram' => array(
232 'NGramNetworkOptionStore', 'NGramCacheRebuildScheduler', 'NGramCacheRebuildBatchRunner',
233 'NGramRebuildProgressState', 'NGramRescheduleFailureReport', 'NGramRebuildDrain',
234 'NGramRebuildRetryPolicy', 'NGramRebuildRuntime',
235 'NGramCacheSyncRebuilder',
236 'NGramCacheReconciler', 'NGramTermCacheReconciler', 'NGramLastUpdatedEpochMigration',
237 'NGramFilter',
238 'NGramFilterCollaboratorResolver', 'TermNGramCoveragePolicy', 'TermCandidateSource',
239 'NGramExtractor', 'NGramSimilarity', 'NGramCacheRepository', 'NGramCoveragePolicy',
240 'NGramRebuilder', 'NGramRebuilderDependencies', 'NGramUsageTelemetry',
241 ),
242 'php' => array(
243 'FileSync', 'MbStringAdapter', 'MbStringAdapterMb', 'MbStringAdapterPreg',
244 'FunctionsMBString', 'FunctionsPreg',
245 ),
246 'php/objs' => array(
247 'UserRequest', 'UserRequestParts', 'WPNotice',
248 ),
249 'php/wordpress' => array(
250 'WPNotices', 'WPUtils',
251 ),
252 'policies' => array(
253 'SettingsAdminExcludedPagesPolicy', 'SettingsBooleanModePolicy',
254 'AdminStatusFallbackResolver',
255 'SettingsNotificationPolicy', 'SetupWizardAnswerPolicy', 'SettingsRedirectPolicy',
256 'SettingsRegexPatternPolicy', 'SettingsRetentionPolicy', 'SettingsSuggestionPolicy',
257 'SettingsWordPressPolicy', 'PluginAdminAccessPolicy', 'ErrorTypeClassifier',
258 ),
259 'redirects' => array(
260 'RedirectsBulkReader', 'RedirectLookupService', 'RedirectSpec',
261 'RedirectsDenormChunkResolver', 'RedirectsSortKeyChunkStore', 'RedirectsDenormColumnSql',
262 'RedirectsDenormMaintenanceService', 'RedirectsDenormContentHooks',
263 'RedirectsRetentionPolicy', 'RedirectsCleanupRepository', 'RedirectDeadDestinationChecker',
264 'RedirectsRetentionService', 'RedirectRow', 'RedirectUpdate', 'RedirectCanonicalUrl',
265 'RedirectScheduleTimezone', 'ExistingRedirectLookup', 'AutoRedirectHandler',
266 'CanonicalPaginationRedirect', 'CanonicalPaginationUrlResolver',
267 'RedirectLoopGuard',
268 'RedirectExclusionPolicy', 'RedirectDispatcher', 'RedirectConditionEvaluator',
269 'RegexAutoPromote', 'RegexDestinationTemplateValidator', 'RegexSourcePatternValidator',
270 'RedirectWriteAdmissionPolicy',
271 ),
272 'repositories' => array(
273 'ContentRepositoryInterface', 'PublishedContentLookupInterface', 'OldSlugLookupInterface',
274 'TermUrlEnricher', 'InternalSourceEvidenceRepository', 'PublishedContentRepository',
275 'PublishedTermsProvider', 'PermalinkCacheRepository', 'OldPermalinkStructureStore',
276 'SpellingCacheRepository', 'OldSlugRepository', 'ContentRepository',
277 'RedirectsRepositoryInterface', 'RedirectConditionsRepository', 'RedirectExportReader',
278 'RedirectInsertStatement',
279 'RedirectLookupRepository', 'RedirectRegexCacheStore', 'RedirectsLiveColumnSet',
280 'RedirectWriteService',
281 'RedirectsRepository', 'ContentKeywordsRepository', 'PluginUpdateMetadataRepository',
282 'PermalinkCache', 'PermalinkCacheScheduleLock', 'ReviewStateRepository',
283 'NetworkSitesRepository', 'NextNetworkSite',
284 ),
285 'rest' => array(
286 'RestApiResponsePresenter', 'RestApiRedirectMutationService', 'RestApiReadService',
287 'RestApiController',
288 ),
289 'services' => array(
290 'PerPageOptionUpdater', 'CronScheduler', 'ScheduledEventInspector',
291 'CronWriteOutcome',
292 'CronRecurrenceMigration', 'RequestInputNormalizer', 'RedirectEditRequest',
293 'RequestedRedirectIds',
294 'RedirectDestinationSuggestionService', 'RedirectEngineLabeler', 'StatsRepositoryResolver',
295 'RestApiRequestParser', 'FrontendSuggestionLocaleScope', 'ShortcodeRequestedUrlResolver',
296 'ShortcodeUrlBarUpdater', 'SettingsModePreference', 'SettingsModeDeepLink',
297 'NotFoundResponseService',
298 'NotFoundResponseDependencies', 'PreviousRequestCookieTracker', 'RequestIgnoreNormalizer',
299 'RequestIgnoreNormalizerDependencies', 'ErrorDiagnosticsReporter',
300 'AdminFatalErrorResponder', 'AjaxFatalErrorResponder', 'FatalErrorProcessor',
301 'ImportCsvParser', 'ImportProgressStore', 'ImportRedirectRowProcessor',
302 'ImportUploadValidator', 'OutputBufferDrain',
303 ),
304 'settings' => array(
305 'SettingsFieldValidator', 'StorageOptionContracts', 'SuggestionTransient', 'SuggestionWorkerStateStore',
306 'SuggestionDisplayOptions', 'SetupWizardOptionStore',
307 ),
308 // Includes the standalone classes SpellChecker delegates to (converted
309 // from traits).
310 'spelling' => array(
311 'SpellURLMatcher', 'SpellPostListeners', 'SpellNGramPrefilter',
312 'SpellCandidatePermalinkLookup', 'SpellSuggestionExclusionPolicy', 'SpellSuggestionScorer',
313 'SpellLevenshteinEngine', 'SpellLevenshteinEngineDependencies',
314 'SpellCandidateDistanceRanker', 'SpellCandidateFilter', 'SpellSuggestionShortcodeDetector',
315 'StopWords', 'SpellChecker', 'SpellCheckerDependencies',
316 ),
317 'stats' => array(
318 'StatusCountBuckets', 'StatusCountsMutationSync', 'StatusCountsRepository', 'RedirectHitCountHistogramRepository',
319 'RedirectRowCountRepository', 'UnavailableStatsRepository', 'StatsRepositoryInterface',
320 'StatsRefreshLock', 'StatsReadRepository', 'StatsDashboardSnapshotCache',
321 'StatsDigestDataProvider', 'StatsRepository',
322 ),
323 'uninstall' => array(
324 'UninstallModal', 'UninstallCollationSnapshotPresenter', 'UninstallDatabaseDefaultsReader',
325 'UninstallDatabaseMetadataReader', 'UninstallDiagnostics', 'UninstallFeedbackEmail',
326 'UninstallStatisticsReader', 'UninstallWordPressInventory', 'Uninstaller',
327 ),
328 // Includes the view components converted from the former ViewTrait_* family.
329 'view' => array(
330 'TableViewOptionsResolver', 'ViewComponent', 'RedirectDestinationOptionsPresenter',
331 'RedirectEditFormPresenter', 'RedirectEditDeadEndRenderer',
332 'RedirectDestinationResolver', 'View_Logs', 'View_Redirects',
333 'View_RedirectsTable', 'View_CapturedURLsTable', 'CapturedTableHeaderRenderer',
334 'CapturedPageChromeRenderer', 'CapturedRowActionButtonsRenderer',
335 'CapturedSourceEvidenceRenderer', 'View_RedirectForms', 'EditRedirectFormContext',
336 'View_ListTableChrome', 'View_RedirectTypeUI', 'View_RedirectConditions',
337 'View_AdminChrome', 'OptionsSectionView', 'View_OptionsPresenter', 'View_Settings',
338 'View_SettingsSections', 'View_Shared', 'View_SimpleSettings', 'View_Stats', 'View_Tools',
339 'View_UI', 'ShortcodeSuggestionAdminDebugPresenter', 'ShortcodeSuggestionsPresenter',
340 'ShortcodeSuggestionsAdminNotePresenter',
341 'View', 'View_Suggestions',
342 ),
343 'view-build' => array(
344 'ViewReadServiceInterface', 'ViewReadService', 'StatusCountsRefreshCoordinator',
345 'ViewReadRuntimeState', 'ViewQueryPolicy', 'ViewQueryBuilder', 'RedirectsViewLiveResolver',
346 'RedirectsDenormSchemaReadiness', 'RedirectsHitsRollupReader', 'ScoreThresholds',
347 'ViewDiagnostics', 'ViewQueryExplainDiagnostics', 'ViewCacheInvalidator',
348 'AdminViewReadCoordinator', 'ViewReadOutcome', 'HitsTableRebuildPolicy',
349 'ViewQueryFailureException',
350 ),
351 'wpcli' => array(
352 'WPCLICommandPresenter', 'WPCLIImportExportCommandService', 'WPCLIRedirectCommandService',
353 'WPCLICommands',
354 ),
355 );
356
357 /**
358 * The classes whose file is not named after them: several classes declared in
359 * one file, or a file whose name outlived a class rename. Paths are relative
360 * to the plugin root.
361 *
362 * @var array<string, string> $abj404ClassFileExceptions
363 */
364 $abj404ClassFileExceptions = array(
365 'ABJ_404_Solution_Ajax_ServiceResolver' => 'includes/ajax/AjaxServiceResolver.php',
366 'ABJ_404_Solution_Ajax_SearchFeedback' => 'includes/ajax/AjaxSearchFeedback.php',
367 'ABJ_404_Solution_SystemClock' => 'includes/core/Clock.php',
368 'ABJ_404_Solution_FrozenClock' => 'includes/core/Clock.php',
369 'ABJ_404_Solution_AjaxCanaryStreamFlushPlan' =>
370 'includes/diagnostics/AjaxCanaryStreamFlush.php',
371 'ABJ_404_Solution_RedirectHitCountHistogramQueryException' =>
372 'includes/stats/RedirectHitCountHistogramRepository.php',
373 'ABJ_404_Solution_TrackingLogsHitsRollupService' => 'includes/logs/TrackingLogsRepository.php',
374 'ABJ_404_Solution_WPDBExtension_PHP5' => 'includes/php/wordpress/WPDBExtension.php',
375 'ABJ_404_Solution_WPDBExtension_PHP7' => 'includes/php/wordpress/WPDBExtension.php',
376 );
377
378 $abj404Classmap = array();
379 foreach ($abj404ClassesByDirectory as $abj404Directory => $abj404ShortNames) {
380 $abj404Prefix = $base . 'includes/' . $abj404Directory . '/';
381 foreach ($abj404ShortNames as $abj404ShortName) {
382 $abj404Classmap['ABJ_404_Solution_' . $abj404ShortName] =
383 $abj404Prefix . $abj404ShortName . '.php';
384 }
385 }
386 foreach ($abj404ClassFileExceptions as $abj404Class => $abj404RelativePath) {
387 $abj404Classmap[$abj404Class] = $base . $abj404RelativePath;
388 }
389
390 return $abj404Classmap;
391