PluginProbe
404 Solution / 4.3.3
404 Solution v4.3.3
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 4.3.3, at includes/classmap.php

363 lines 20.9 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',
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',
65 'Ajax_RefreshStatsDashboard', 'Ajax_RefreshHealthBar', 'Ajax_RefreshAdminNonces',
66 'Ajax_CanaryLadder',
67 ),
68 'bootstrap' => array(
69 'CoreServiceRegistration', 'DataServiceRegistration', 'DomainServiceRegistration',
70 'MatchingEngineServiceRegistration', 'Abj404ServiceRegistrationContract',
71 'RuntimeServiceRegistration', 'LegacyInstanceResolver',
72 ),
73 'core' => array(
74 'PluginLogicAdminActions', 'PluginLogicImportExport', 'PluginLogicLifecycle',
75 'PluginLogicPageOrdering', 'PluginLogicSettingsUpdate', 'PluginLogicUrlNormalization',
76 'PluginLogicDefaults', 'InternalLinkScanner', 'LockOwnerStore',
77 'PluginLogicVersionUpgrader', 'PluginLogicOptionsResolver', 'ErrorHandler',
78 'FileSystemService', 'Functions', 'RegexHelper', 'RegexHelperMb', 'RegexHelperPreg',
79 'PermalinkResolver', 'UrlEncoder', 'Sanitizer', 'QueryStringHelper', 'PostRef', 'UserRef',
80 'SiteRef', 'PluginLogic', 'PluginLogicInterface', 'Privacy', 'ServiceContainer', 'Clock',
81 'SiteTimezone', 'PluginReleaseChannel', 'SetupWizard', 'SynchronizationUtils', 'Timer',
82 'WordPressHookRegistrar', 'WordPress_Connector', 'WordPressConnectorDependencies',
83 'ReviewFeedback', 'RebuildHealthState',
84 ),
85 'database' => array(
86 'DatabaseMetadataReader', 'DatabaseRuntimeState', 'DatabaseCoreInterface', 'DatabaseCore',
87 'DatabaseConnectionManager', 'DatabaseErrorClassifier', 'DatabaseRepairPolicy',
88 'DatabaseQueryRecoveryPolicy', 'DatabaseQueryTimeoutManager', 'DatabaseSqlErrorReporter',
89 'DatabaseQueryInterface', 'DatabaseTableMetadataInterface',
90 'DatabaseQueryBuilderInterface', 'DatabaseErrorRecoveryInterface',
91 'DatabaseRuntimeStateInterface', 'DataAccessDependencies', 'DataAccess',
92 'TrackingDatabaseCore', 'TableIndexDefinitions', 'TableReadinessGate', 'ShowIndexRowReader',
93 'CreateTableIndexParser', 'IndexDefinitionComparator',
94 ),
95 'database/upgrades' => array(
96 'DatabaseUpgradeCoordinator', 'DatabaseUpgradeComponent',
97 'DatabaseUpgradeComponentRegistry', 'DatabaseUpgradeRuntimeState',
98 'DatabaseUpgradeIndexes', 'DatabaseUpgradeEngineNormalization',
99 'DatabaseUpgradeCollationDrift', 'DatabaseUpgradeSelfHeal',
100 'DatabaseUpgradeCanonicalUrlBackfill', 'DatabaseUpgradeRedirectsDenormBackfill',
101 'DatabaseUpgradeRedirectsSortKeyBackfill', 'DatabaseUpgradeRedirectsDenormReconcile',
102 'DatabaseUpgradeDailyMaintenance', 'DatabaseUpgradeNGram',
103 'DatabaseUpgradeNGramCacheInitializer', 'DatabaseUpgradePluginUpdate',
104 'DatabaseUpgradeTableRepair', 'DatabaseUpgradeDropStagedViewTables',
105 'DatabaseUpgradeOrphanAdoption', 'DatabaseUpgradeMultiSite', 'DatabaseUpgradeSchemaDiff',
106 'DatabaseUpgradeBootstrap', 'DatabaseTableLowercaseRenamer', 'DatabaseTableDdlExecutor',
107 'DatabaseUpgradesDependencies', 'DatabaseUpgradesEtc',
108 ),
109 'diagnostics' => array(
110 'CrashBeacon', 'CrashBeaconStore', 'CrashBeaconReporter', 'AjaxRequestTrace',
111 'AjaxTeardownRecorder',
112 'AjaxCheckpointLogger', 'AjaxCheckpointBoundaryWriter', 'AjaxFrequentCheckpointWriter',
113 'CheckpointRecordFactory', 'CheckpointIntentStore', 'CheckpointIntentCorrelation',
114 'DurableOperationRecorder',
115 'ActiveOperationBreadcrumbs', 'ActiveOperationBoundaryManifest',
116 'CheckpointJournalWriter',
117 'CheckpointJournalReader', 'RequiredCheckpointEvidence', 'RequiredCheckpointIdentityEvidence',
118 'MalformedCheckpointEvidence',
119 'DecisiveRecordManifest',
120 'DecisiveRecordAuthorizationFamilies',
121 'DecisiveRecordRenderFamilies',
122 'DecisiveRecordRenderOptionIoFamilies',
123 'DecisiveRecordStatusCountFamilies',
124 'DecisiveRecordQueryFilterFamilies',
125 'DecisiveRecordShutdownFamilies',
126 'DecisiveRecordFailureFamilies',
127 'AjaxRequestLedger', 'AjaxDiagnosticRequestPolicy',
128 'AuthorizationLogTracer', 'PostAuthorizationFailureTracer',
129 'TableRenderTranslationTracer', 'DiagnosticInternalHookObserver',
130 'HookInstrumentationRegistration', 'HookInstrumentationRegistry',
131 'DiagnosticAppendStream',
132 'HookRegistryInspectionLedger', 'DiagnosticDirectoryResolver',
133 'RenderOptionIoTracer',
134 'RenderOptionIoOperationJournal',
135 'DatabaseQueryPreflightTracer',
136 'DatabaseQueryRecoveryTracer',
137 'DatabaseQueryFilterTracer',
138 'DetachAbResolutionTracer',
139 'AjaxQueryTimeline', 'AjaxRowLoopProgress', 'CacheMetricsProbeTracer',
140 'RateLimitOperationTracer', 'CacheOperationTraceSink',
141 'HookCallbackIdentity', 'HookInstrumentationLifecycleTracer', 'HookCallbackInstrumenter',
142 'OptionPersistenceTracer', 'RowRenderOperationTracer',
143 'TableRendererPreludeTracer', 'TemplateFileReadTracer', 'RoutineLogTracer',
144 'SortReadinessTracer', 'StatusCountOperationJournal', 'StatusCountsForegroundTracer',
145 'ResponseControlFilterTracer',
146 'ShutdownCallbackTracer',
147 'InstrumentedObjectCache',
148 'AjaxTraceJournal', 'AjaxStageDiagnostics',
149 'ShutdownEnvironmentInventory', 'ShutdownTeardownBracket', 'DiagnosticJournalExcerpt',
150 'DiagnosticJournalFileSelector',
151 'DiagnosticClientVerdict', 'DiagnosticCollectionManifest', 'DiagnosticDirectoryProbe',
152 'DiagnosticEvidencePriority', 'DiagnosticEvidenceBudget', 'DetachAbEvidence', 'CanaryReceiptEvidence',
153 'FailingSessionEvidence',
154 'DiagnosticRequestGroup',
155 'HostFilesystemPressureProbe', 'HostPressureSampler', 'HostServerCounterProbe',
156 'SameSiteRequestCensus', 'SameSiteCensusReading', 'SameSiteRequestRegistry',
157 'StrandedRequestLedger',
158 'RequestEnvironmentFingerprint', 'ClientBuildFingerprint', 'DiagnosticModuleManifest',
159 'OpcacheGenerationProbe', 'BootWaypointRecorder',
160 'ClientTransportReport', 'AjaxCanaryLadder', 'AjaxCanaryPayloadFactory',
161 'AjaxCanaryReceiptParser', 'DebugLogFileStore', 'DebugLogReader',
162 'DebugLogArchiveBuilder', 'DeveloperLogMailer', 'ToolsDiagnostics',
163 ),
164 'engine' => array(
165 'ArchiveFallbackEngine', 'CategoryTagMatchingEngine', 'ContentMatchingEngine',
166 'SlugMatchingEngine', 'OldPermalinkStructureEngine', 'UrlFixEngine',
167 'SpellingMatchingEngine', 'TitleMatchingEngine',
168 ),
169 'feedback' => array(
170 'FeedbackDatabaseIdentity', 'FeedbackDiagnosticsCollector', 'FeedbackEnvironmentExtras',
171 'FeedbackPluginSettingsSnapshot',
172 'MysqlServerStateProbe', 'PluginSchemaMetadataProbe', 'RollupFreshnessProbe',
173 'FeedbackEnvironmentExtras_HostProbes',
174 'FeedbackEnvironmentExtras_PlatformFingerprint',
175 'FeedbackEnvironmentExtras_DebugLogSignatures', 'FeedbackSiteTokenStore',
176 'SupportLogExcerpt', 'SupportEvidenceExcerpt', 'CanaryReceiptSupportSection',
177 'FailingSessionSupportSection', 'StrandedRequestSupportSection',
178 'DetachAbVerdictSupportSection',
179 'FeedbackDsrClient', 'FeedbackReportUuid',
180 'FeedbackRuntimeEnvironment', 'FeedbackWordPressInventory', 'SupportRequestButton',
181 'FeedbackTransport', 'PayloadSchema', 'ReportPayloadJsonSchemaValidator',
182 'ErrorEmailDedupeState', 'ErrorEmailBodyFormatter', 'PiiRedactor', 'OpaqueTokenClassifier',
183 'RequestCredentialRedactor', 'SensitiveValueMask',
184 ),
185 'frontend' => array(
186 'FrontendRequestPipeline', 'FrontendPipelineDependencies', 'FrontendLegacyAdapters',
187 'FrontendRuntimeOptions', 'FrontendHitRecorder', 'FrontendAsyncSuggestionTrigger',
188 'FrontendPipelineTrace', 'FrontendDbVersionRecovery', 'FrontendPipelineTelemetry',
189 'RequestContext', 'PostEditorIntegration', 'PublishedPostsProvider', 'ShortCode',
190 'SlugChangeHandler', 'SystemPage',
191 ),
192 'gsc' => array(
193 'GscConfig', 'GscOAuthTokenStore', 'GscSearchAnalyticsClient', 'GscAdminSectionRenderer',
194 'GoogleSearchConsole', 'GscOAuthHandler',
195 ),
196 'import' => array(
197 'CrossPluginImporter', 'ForeignRedirectSourceReader', 'ForeignSourceQueryGateway',
198 'ExportService', 'ImportService',
199 ),
200 'logs' => array(
201 'LoggingCapabilityDiagnostics', 'LoggingFeedbackDispatcher', 'LoggingStateStore',
202 'LoggingMessageWriter', 'RoutineLoggingBridge', 'LogTimestampFormatter', 'LogDebugModeResolver',
203 'LogsMetricsReader', 'LogReadQueryInterface', 'LogPrivacyInterface', 'LogWriteInterface',
204 'LogHitsRebuildInterface', 'LogHitsLifecycleInterface', 'LogsHitsRollupServiceInterface',
205 'LogsHitsRollupService', 'LogsHitsTableRebuilder', 'LogsLookupRepository',
206 'LogsPrivacyService', 'LogsReadQueries', 'LogsHitsDataPopulator',
207 'LogsWriteRecoveryPolicy', 'LogsWriter', 'RedirectHitLogEntry', 'LogsRepositoryInterface',
208 'LogsRepository', 'EmailDigest', 'Logging', 'TrackingLogsRepository',
209 ),
210 'matching' => array(
211 'EngineProfileSaveRequest', 'MatchingEngineOrchestrator', 'RedirectCandidateEvaluator',
212 'WordPressGuessFallback', 'EngineProfileResolver', 'MatchingEngine', 'MatchRequest',
213 'MatchResult', 'OldPermalinkStructureResolver', 'PermalinkStructureCompiler',
214 'OldPermalinkCandidateStructureProvider', 'OldPermalinkPostResolver',
215 ),
216 'ngram' => array(
217 'NGramNetworkOptionStore', 'NGramCacheRebuildScheduler', 'NGramCacheRebuildBatchRunner',
218 'NGramRebuildProgressState', 'NGramRescheduleFailureReport', 'NGramRebuildDrain',
219 'NGramRebuildRetryPolicy', 'NGramRebuildRuntime',
220 'NGramCacheSyncRebuilder',
221 'NGramCacheReconciler', 'NGramTermCacheReconciler', 'NGramLastUpdatedEpochMigration',
222 'NGramFilter',
223 'NGramFilterCollaboratorResolver', 'TermNGramCoveragePolicy', 'TermCandidateSource',
224 'NGramExtractor', 'NGramSimilarity', 'NGramCacheRepository', 'NGramCoveragePolicy',
225 'NGramRebuilder', 'NGramRebuilderDependencies', 'NGramUsageTelemetry',
226 ),
227 'php' => array(
228 'FileSync', 'MbStringAdapter', 'MbStringAdapterMb', 'MbStringAdapterPreg',
229 'FunctionsMBString', 'FunctionsPreg',
230 ),
231 'php/objs' => array(
232 'UserRequest', 'UserRequestParts', 'WPNotice',
233 ),
234 'php/wordpress' => array(
235 'WPNotices', 'WPUtils',
236 ),
237 'policies' => array(
238 'SettingsAdminExcludedPagesPolicy', 'SettingsBooleanModePolicy',
239 'AdminStatusFallbackResolver',
240 'SettingsNotificationPolicy', 'SetupWizardAnswerPolicy', 'SettingsRedirectPolicy',
241 'SettingsRegexPatternPolicy', 'SettingsRetentionPolicy', 'SettingsSuggestionPolicy',
242 'SettingsWordPressPolicy', 'PluginAdminAccessPolicy', 'ErrorTypeClassifier',
243 ),
244 'redirects' => array(
245 'RedirectsBulkReader', 'RedirectLookupService', 'RedirectSpec',
246 'RedirectsDenormChunkResolver', 'RedirectsSortKeyChunkStore', 'RedirectsDenormColumnSql',
247 'RedirectsDenormMaintenanceService', 'RedirectsDenormContentHooks',
248 'RedirectsRetentionPolicy', 'RedirectsCleanupRepository', 'RedirectDeadDestinationChecker',
249 'RedirectsRetentionService', 'RedirectRow', 'RedirectUpdate', 'RedirectCanonicalUrl',
250 'RedirectScheduleTimezone', 'ExistingRedirectLookup', 'AutoRedirectHandler',
251 'RedirectExclusionPolicy', 'RedirectDispatcher', 'RedirectConditionEvaluator',
252 'RegexAutoPromote', 'RegexDestinationTemplateValidator', 'RegexSourcePatternValidator',
253 'RedirectWriteAdmissionPolicy',
254 ),
255 'repositories' => array(
256 'ContentRepositoryInterface', 'PublishedContentLookupInterface', 'OldSlugLookupInterface',
257 'TermUrlEnricher', 'InternalSourceEvidenceRepository', 'PublishedContentRepository',
258 'PublishedTermsProvider', 'PermalinkCacheRepository', 'OldPermalinkStructureStore',
259 'SpellingCacheRepository', 'OldSlugRepository', 'ContentRepository',
260 'RedirectsRepositoryInterface', 'RedirectConditionsRepository', 'RedirectExportReader',
261 'RedirectLookupRepository', 'RedirectRegexCacheStore', 'RedirectWriteService',
262 'RedirectsRepository', 'ContentKeywordsRepository', 'PluginUpdateMetadataRepository',
263 'PermalinkCache', 'ReviewStateRepository', 'NetworkSitesRepository', 'NextNetworkSite',
264 ),
265 'rest' => array(
266 'RestApiResponsePresenter', 'RestApiRedirectMutationService', 'RestApiReadService',
267 'RestApiController',
268 ),
269 'services' => array(
270 'PerPageOptionUpdater', 'CronScheduler', 'RequestInputNormalizer',
271 'RedirectDestinationSuggestionService', 'RedirectEngineLabeler', 'StatsRepositoryResolver',
272 'RestApiRequestParser', 'FrontendSuggestionLocaleScope', 'ShortcodeRequestedUrlResolver',
273 'ShortcodeUrlBarUpdater', 'SettingsModePreference', 'NotFoundResponseService',
274 'NotFoundResponseDependencies', 'PreviousRequestCookieTracker', 'RequestIgnoreNormalizer',
275 'RequestIgnoreNormalizerDependencies', 'ErrorDiagnosticsReporter',
276 'AdminFatalErrorResponder', 'AjaxFatalErrorResponder', 'FatalErrorProcessor',
277 'ImportCsvParser', 'ImportProgressStore', 'ImportRedirectRowProcessor',
278 'ImportUploadValidator', 'OutputBufferDrain',
279 ),
280 'settings' => array(
281 'SettingsFieldValidator', 'StorageOptionContracts', 'SuggestionTransient',
282 'SuggestionDisplayOptions', 'SetupWizardOptionStore',
283 ),
284 // Includes the standalone classes SpellChecker delegates to (converted
285 // from traits).
286 'spelling' => array(
287 'SpellURLMatcher', 'SpellPostListeners', 'SpellNGramPrefilter',
288 'SpellCandidatePermalinkLookup', 'SpellSuggestionExclusionPolicy', 'SpellSuggestionScorer',
289 'SpellLevenshteinEngine', 'SpellLevenshteinEngineDependencies',
290 'SpellCandidateDistanceRanker', 'SpellCandidateFilter', 'SpellSuggestionShortcodeDetector',
291 'StopWords', 'SpellChecker', 'SpellCheckerDependencies',
292 ),
293 'stats' => array(
294 'StatusCountBuckets', 'StatusCountsMutationSync', 'StatusCountsRepository', 'RedirectHitCountHistogramRepository',
295 'RedirectRowCountRepository', 'UnavailableStatsRepository', 'StatsRepositoryInterface',
296 'StatsRefreshLock', 'StatsReadRepository', 'StatsDashboardSnapshotCache',
297 'StatsDigestDataProvider', 'StatsRepository',
298 ),
299 'uninstall' => array(
300 'UninstallModal', 'UninstallCollationSnapshotPresenter', 'UninstallDatabaseDefaultsReader',
301 'UninstallDatabaseMetadataReader', 'UninstallDiagnostics', 'UninstallFeedbackEmail',
302 'UninstallStatisticsReader', 'UninstallWordPressInventory', 'Uninstaller',
303 ),
304 // Includes the view components converted from the former ViewTrait_* family.
305 'view' => array(
306 'TableViewOptionsResolver', 'ViewComponent', 'RedirectDestinationOptionsPresenter',
307 'RedirectEditFormPresenter', 'RedirectDestinationResolver', 'View_Logs', 'View_Redirects',
308 'View_RedirectsTable', 'View_CapturedURLsTable', 'CapturedTableHeaderRenderer',
309 'CapturedPageChromeRenderer', 'CapturedRowActionButtonsRenderer',
310 'CapturedSourceEvidenceRenderer', 'View_RedirectForms', 'EditRedirectFormContext',
311 'View_ListTableChrome', 'View_RedirectTypeUI', 'View_RedirectConditions',
312 'View_AdminChrome', 'OptionsSectionView', 'View_OptionsPresenter', 'View_Settings',
313 'View_SettingsSections', 'View_Shared', 'View_SimpleSettings', 'View_Stats', 'View_Tools',
314 'View_UI', 'ShortcodeSuggestionAdminDebugPresenter', 'ShortcodeSuggestionsPresenter',
315 'View', 'View_Suggestions',
316 ),
317 'view-build' => array(
318 'ViewReadServiceInterface', 'ViewReadService', 'StatusCountsRefreshCoordinator',
319 'ViewReadRuntimeState', 'ViewQueryPolicy', 'ViewQueryBuilder', 'RedirectsViewLiveResolver',
320 'RedirectsDenormSchemaReadiness', 'RedirectsHitsRollupReader', 'ScoreThresholds',
321 'ViewDiagnostics', 'ViewQueryExplainDiagnostics', 'ViewCacheInvalidator',
322 'AdminViewReadCoordinator', 'ViewReadOutcome', 'HitsTableRebuildPolicy',
323 'ViewQueryFailureException',
324 ),
325 'wpcli' => array(
326 'WPCLICommandPresenter', 'WPCLIImportExportCommandService', 'WPCLIRedirectCommandService',
327 'WPCLICommands',
328 ),
329 );
330
331 /**
332 * The classes whose file is not named after them: several classes declared in
333 * one file, or a file whose name outlived a class rename. Paths are relative
334 * to the plugin root.
335 *
336 * @var array<string, string> $abj404ClassFileExceptions
337 */
338 $abj404ClassFileExceptions = array(
339 'ABJ_404_Solution_Ajax_ServiceResolver' => 'includes/ajax/AjaxServiceResolver.php',
340 'ABJ_404_Solution_Ajax_SearchFeedback' => 'includes/ajax/AjaxSearchFeedback.php',
341 'ABJ_404_Solution_SystemClock' => 'includes/core/Clock.php',
342 'ABJ_404_Solution_FrozenClock' => 'includes/core/Clock.php',
343 'ABJ_404_Solution_RedirectHitCountHistogramQueryException' =>
344 'includes/stats/RedirectHitCountHistogramRepository.php',
345 'ABJ_404_Solution_TrackingLogsHitsRollupService' => 'includes/logs/TrackingLogsRepository.php',
346 'ABJ_404_Solution_WPDBExtension_PHP5' => 'includes/php/wordpress/WPDBExtension.php',
347 'ABJ_404_Solution_WPDBExtension_PHP7' => 'includes/php/wordpress/WPDBExtension.php',
348 );
349
350 $abj404Classmap = array();
351 foreach ($abj404ClassesByDirectory as $abj404Directory => $abj404ShortNames) {
352 $abj404Prefix = $base . 'includes/' . $abj404Directory . '/';
353 foreach ($abj404ShortNames as $abj404ShortName) {
354 $abj404Classmap['ABJ_404_Solution_' . $abj404ShortName] =
355 $abj404Prefix . $abj404ShortName . '.php';
356 }
357 }
358 foreach ($abj404ClassFileExceptions as $abj404Class => $abj404RelativePath) {
359 $abj404Classmap[$abj404Class] = $base . $abj404RelativePath;
360 }
361
362 return $abj404Classmap;
363