refactor(autoload): migrate theme classes to Composer PSR-4

Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
This commit is contained in:
2026-07-17 13:29:22 +08:00
parent 8f349b40fb
commit aaf458af1c
404 changed files with 13602 additions and 7705 deletions
+50 -25
View File
@@ -1,37 +1,62 @@
# ADR: Domain folder placement for `inc/classes`
# ADR: Domain folder placement + PSR-4 namespaces for theme types
## Status
Accepted (2026-07-17)
Accepted (2026-07-17); **updated 2026-07-17** for Composer PSR-4.
## Context
After moving root class files into domain folders, freeze placement for boundary types so later moves are intentional.
Domain folders were frozen after the root→domain move. Theme types then migrated from global `AKSRT_*` + manual `require_once` to real PHP namespaces under `src/AKSRT/` with Composer PSR-4.
## Decision
### Domain ownership (unchanged)
| Concern | Domain | Why |
|---------|--------|-----|
| Theme shell (setup, scripts, templates, SEO, meta boxes, DB migrator, front-submit, docs presenter, home modules, stats, redirects, update checker, comment actions) | `core/` | Shared CMS plumbing |
| SPA shell + controllers + schema + native ops | `admin/` | Dual-surface IA |
| Settings facade + runtime delegates | `settings/` | Single public settings API |
| Auth, OAuth, captcha, moderation, email rollback | `auth/` | Identity & access |
| User center/home/badges/level/metrics/notifications/follow | `user/` | Account surface |
| Credits, balance wallet, signin, invite, points-free | `credits/` | Points + cash wallet |
| Download tokens/state, content pay, VIP, visibility | `content/` | Post-centric paid content |
| Topic pay, plate follow pay | `forum/` | Forum SKUs (not generic content pay) |
| Orders, gateways, coupon, charge-card, revenue, creator-revenue, withdrawal, rebate, discount, after-sale, shipping, wechat-notify | `payment/` | Commerce + settlement |
| Shop services/meta/reviews | `shop/` | Product catalog / cart |
| SMS stack | `sms/` | Messaging channel |
| AI runtime (admin AI controller stays in `admin/`) | `ai/` | Generation helpers |
| Message, private message, site notice, report center | `messages/` | In-site messaging |
| MeiliSearch, search-push, ip-geo, content-audit, api-audit | `extensions/` | Optional integrations |
| Widgets + registry | `widgets/` | WP widgets |
| Inline style / custom code / loading overlay | `frontend/` | Asset render helpers |
| Theme shell (setup, scripts, templates, SEO, meta boxes, DB migrator, front-submit, docs presenter, home modules, stats, redirects, update checker, comment actions) | `Core` | Shared CMS plumbing |
| SPA shell + controllers + schema + native ops | `Admin` | Dual-surface IA |
| Settings facade + runtime delegates | `Settings` | Single public settings API |
| Auth, OAuth, captcha, moderation, email rollback | `Auth` | Identity & access |
| User center/home/badges/level/metrics/notifications/follow | `User` | Account surface |
| Credits, balance wallet, signin, invite, points-free | `Credits` | Points + cash wallet |
| Download tokens/state, content pay, VIP, visibility | `Content` | Post-centric paid content |
| Topic pay, plate follow pay | `Forum` | Forum SKUs (not generic content pay) |
| Orders, gateways, coupon, charge-card, revenue, creator-revenue, withdrawal, rebate, discount, after-sale, shipping, wechat-notify | `Payment` | Commerce + settlement |
| Shop services/meta/reviews | `Shop` | Product catalog / cart |
| SMS stack | `Sms` | Messaging channel |
| AI runtime (admin AI controller stays in `Admin`) | `Ai` | Generation helpers |
| Message, private message, site notice, report center | `Messages` | In-site messaging |
| MeiliSearch, search-push, ip-geo, content-audit, api-audit | `Extensions` | Optional integrations |
| Widgets + registry | `Widgets` | WP widgets |
| Inline style / custom code / loading overlay | `Frontend` | Asset render helpers |
### Rules
- Traits live next to owner: `{domain}/{slug}-traits/`.
- Loader: manual `require_once` in `inc/bootstrap.php` only; traits before shells.
- Do not move `topic-pay` / `plate-follow-pay` into `content/` without updating this ADR.
- `creator-revenue` and `wechat-notify` stay under `payment/`.
### PSR-4 layout
- Composer: `"AKSRT\\": "src/AKSRT/"`
- Namespace `AKSRT\{Domain}\…` ↔ path `src/AKSRT/{Domain}/…`
- One type per file; StudlyCaps filename = short class/trait/interface name
- Nested segments: `Admin\Schema`, `Admin\Native`, `Payment\Gateways`, `Admin\Schema\PostList`
- OAuth stays under `Auth` (`AKSRT\Auth\OAuth`) — no separate `oauth/` tree
- Do not move `TopicPay` / `PlateFollowPay` into `Content` without updating this ADR
- `CreatorRevenue` and `WeChatNotify` stay under `Payment`
### Loader
1. `functions.php` loads `vendor/autoload.php` (Composer: third-party + theme PSR-4)
2. `inc/bootstrap.php` loads helpers + procedural modules (`inc/modules/*`) + core-hooks only
3. Singleton `init()` remains in `functions.php` using FQCNs
### Procedural (not PSR-4)
- `inc/helpers/*` function libraries
- `inc/modules/*` (captcha, user-hub/parts, user-notifications, widgets-register, …)
- `inc/core-hooks.php` (+ parts)
### Map tooling
- `php tools/build-psr4-map.php --write` — inventory / map under `tools/psr4-map/`
- Migration helpers under `tools/psr4-*.php` (historical; re-run only with care)
## Out of scope
PSR-4 class namespaces; class renames.
- Dual-read `class_alias` shims for old `AKSRT_*` global names (rewrite references instead)
- Converting all helpers to classes
+32 -16
View File
@@ -43,16 +43,16 @@ function collect_php_schema_sections(string $themeRoot): array {
// Primary domain builders.
$primary = [
'global' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-global.php',
'page_display' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-page-display.php',
'post_list' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-post-list.php',
'permissions' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php',
'users' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-users.php',
'payment' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-payment.php',
'extensions' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-extensions.php',
'tools' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-tools.php',
'shop' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-shop.php',
'forum' => $themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-forum.php',
'global' => $themeRoot . '/src/AKSRT/Admin/Schema/GlobalSchema.php',
'page_display' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaPageDisplay.php',
'post_list' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaPostList.php',
'permissions' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaPermissions.php',
'users' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaUsers.php',
'payment' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaPayment.php',
'extensions' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaExtensions.php',
'tools' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaTools.php',
'shop' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaShop.php',
'forum' => $themeRoot . '/src/AKSRT/Admin/Schema/SchemaForum.php',
];
foreach ($primary as $domain => $file) {
@@ -75,7 +75,7 @@ function collect_php_schema_sections(string $themeRoot): array {
}
// Leaf builders that return a single section with 'key' => 'section-id'
$leafFiles = glob($themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-*.php') ?: [];
$leafFiles = array_merge(glob($themeRoot . '/src/AKSRT/Admin/Schema/*.php') ?: [], glob($themeRoot . '/src/AKSRT/Admin/Schema/*/*.php') ?: []);
foreach ($leafFiles as $file) {
$src = file_get_contents($file);
if ($src === false) {
@@ -92,7 +92,7 @@ function collect_php_schema_sections(string $themeRoot): array {
$section = $km[1];
// Infer domain from filename: class-aksrt-admin-schema-{domain}-{section}.php
$base = basename($file, '.php');
$base = preg_replace('/^class-aksrt-admin-schema-/', '', $base);
$base = preg_replace('/^(class-aksrt-admin-schema-|Schema)/', '', $base);
$parts = explode('-', $base);
// domain may be multi-token (page_display is page-display in menus but page_display in PHP).
// Prefer matching known domains by prefix.
@@ -105,8 +105,17 @@ function collect_php_schema_sections(string $themeRoot): array {
}
}
if ($domain === null) {
// Fallback: first token.
$domain = str_replace('-', '_', $parts[0] ?? '');
// Fallback: first token / PSR-4 Schema* short names.
if (str_contains($base, 'PostList')) {
$domain = 'post_list';
} else {
$domain = str_replace('-', '_', $parts[0] ?? '');
}
}
// Leaf under Schema/PostList/ with key list → post_list/list
if ($domain === 'post_list' && $section === 'list') {
$register($domain, $section, $file);
continue;
}
$register($domain, $section, $file);
}
@@ -160,7 +169,7 @@ function collect_enum_maps(string $themeRoot): array {
$php = [];
$js = [];
$phpFiles = glob($themeRoot . '/inc/classes/admin/schema/class-aksrt-admin-schema-*.php') ?: [];
$phpFiles = array_merge(glob($themeRoot . '/src/AKSRT/Admin/Schema/*.php') ?: [], glob($themeRoot . '/src/AKSRT/Admin/Schema/*/*.php') ?: []);
foreach ($phpFiles as $file) {
$src = file_get_contents($file);
if ($src === false) {
@@ -230,9 +239,16 @@ function collect_enum_maps(string $themeRoot): array {
function collect_missing_this_callbacks(string $themeRoot): array {
$issues = [];
$adminRoot = $themeRoot . '/inc/classes/admin';
$adminRoot = $themeRoot . '/src/AKSRT/Admin';
if (!is_dir($adminRoot)) {
$adminRoot = $themeRoot . '/inc/classes/admin';
}
$methodIndex = [];
if (!is_dir($adminRoot)) {
return $issues;
}
$allPhp = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($adminRoot, FilesystemIterator::SKIP_DOTS));
foreach ($allPhp as $file) {
if ($file->getExtension() !== 'php') {
+373
View File
@@ -0,0 +1,373 @@
#!/usr/bin/env php
<?php
/**
* Build PSR-4 class map for AKSRT theme classes.
*
* Usage: php tools/build-psr4-map.php [--write]
* Writes tools/psr4-map/map.json when --write is passed.
*
* @package AKSRT
*/
declare(strict_types=1);
$root = dirname(__DIR__);
$write = in_array('--write', $argv, true);
/**
* Domain folder (lowercase) → namespace segment.
*
* @var array<string, string>
*/
const DOMAIN_NS = [
'admin' => 'Admin',
'ai' => 'Ai',
'auth' => 'Auth',
'content' => 'Content',
'core' => 'Core',
'credits' => 'Credits',
'extensions' => 'Extensions',
'forum' => 'Forum',
'frontend' => 'Frontend',
'messages' => 'Messages',
'payment' => 'Payment',
'settings' => 'Settings',
'shop' => 'Shop',
'sms' => 'Sms',
'user' => 'User',
'widgets' => 'Widgets',
];
/**
* Explicit short-name overrides (old global → short class under domain).
* Used for reserved words / clarity.
*
* @var array<string, string>
*/
const SHORT_OVERRIDES = [
'AKSRT_Admin_Schema_Global' => 'GlobalSchema',
'AKSRT_Payment_Gateway_Interface' => 'PaymentGatewayInterface',
'AKSRT_SMS_Provider' => 'SmsProviderInterface',
// Preserve brand/acronym casing in short names after segment join.
'AKSRT_OAuth' => 'OAuth',
'AKSRT_OAuth_Part_1' => 'OAuthPart1',
'AKSRT_OAuth_Part_2' => 'OAuthPart2',
'AKSRT_OAuth_Proxy_Client' => 'OAuthProxyClient',
'AKSRT_OAuth_Proxy_Server' => 'OAuthProxyServer',
'AKSRT_WeChat_Notify' => 'WeChatNotify',
'AKSRT_WechatPay_Gateway' => 'WechatPayGateway',
'AKSRT_PayPal_Gateway' => 'PayPalGateway',
'AKSRT_MeiliSearch' => 'MeiliSearch',
'AKSRT_Custom_HTML_Gap_Widget' => 'CustomHtmlGapWidget',
];
/**
* Forced domain for helpers moved into the tree.
*
* @var array<string, string>
*/
const HELPER_DOMAIN = [
'AKSRT_Nav_Walker' => 'Frontend',
'AKSRT_Shortcodes' => 'Core',
'AKSRT_Domain_Model' => 'Core',
];
/**
* Convert AKSRT_Foo_Bar_2 → FooBar2 (preserve short ALLCAPS tokens like AI, SEO, SMS, DB, IP, API).
*/
function aksrt_to_short(string $old): string {
if (isset(SHORT_OVERRIDES[$old])) {
return SHORT_OVERRIDES[$old];
}
if (!str_starts_with($old, 'AKSRT_')) {
throw new RuntimeException("Unexpected name: {$old}");
}
$parts = explode('_', substr($old, 6));
$out = '';
foreach ($parts as $p) {
if ($p === '') {
continue;
}
if (preg_match('/^\d+$/', $p)) {
$out .= $p;
continue;
}
// Keep short uppercase acronyms as-is.
if (preg_match('/^[A-Z]{2,5}$/', $p)) {
$out .= $p;
continue;
}
$out .= ucfirst(strtolower($p));
}
return $out;
}
/**
* Nested path segments under domain → extra namespace segments.
*
* @return list<string>
*/
function aksrt_path_ns_segments(string $rel_under_domain): array {
$rel_under_domain = str_replace('\\', '/', $rel_under_domain);
if ($rel_under_domain === '' || $rel_under_domain === '.') {
return [];
}
$parts = array_values(array_filter(explode('/', $rel_under_domain), static fn($p) => $p !== '' && $p !== '.'));
// Drop filename.
array_pop($parts);
$segs = [];
foreach ($parts as $p) {
// Trait dump folders → no extra NS (class short name already unique).
if (str_ends_with($p, '-traits') || $p === 'user-parts') {
continue;
}
if ($p === 'gateways') {
$segs[] = 'Gateways';
continue;
}
if ($p === 'schema') {
$segs[] = 'Schema';
continue;
}
if ($p === 'post-list') {
$segs[] = 'PostList';
continue;
}
if ($p === 'native') {
$segs[] = 'Native';
continue;
}
// Unknown nested folder: PascalCase the slug.
$segs[] = str_replace(' ', '', ucwords(str_replace(['-', '_'], ' ', $p)));
}
return $segs;
}
/**
* Scan PHP files for top-level type declarations.
*
* @return list<array{kind:string,name:string,path:string}>
*/
function aksrt_scan_types(string $root): array {
$out = [];
$dirs = [
$root . '/inc/classes',
];
$extra_files = [
$root . '/inc/helpers/class-aksrt-nav-walker.php',
$root . '/inc/helpers/aksrt-shortcodes.php',
$root . '/inc/helpers/aksrt-domain-model.php',
];
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirs[0]));
$files = [];
foreach ($rii as $file) {
if ($file->isFile() && str_ends_with($file->getFilename(), '.php')) {
$files[] = $file->getPathname();
}
}
foreach ($extra_files as $f) {
if (is_file($f)) {
$files[] = $f;
}
}
$re = '/^(?:abstract\s+|final\s+)?(class|trait|interface)\s+(\w+)/m';
foreach ($files as $abs) {
$rel = str_replace('\\', '/', substr($abs, strlen($root) + 1));
$text = file_get_contents($abs);
if ($text === false) {
continue;
}
if (!preg_match_all($re, $text, $m, PREG_SET_ORDER)) {
$out[] = [
'kind' => 'procedural',
'name' => null,
'path' => $rel,
];
continue;
}
foreach ($m as $match) {
$out[] = [
'kind' => $match[1],
'name' => $match[2],
'path' => $rel,
];
}
}
return $out;
}
/**
* @param list<array{kind:string,name:?string,path:string}> $scanned
* @return array{entries: list<array<string,mixed>>, procedural: list<string>, errors: list<string>}
*/
function aksrt_build_map(array $scanned, string $root): array {
$entries = [];
$procedural = [];
$errors = [];
$by_old = [];
foreach ($scanned as $row) {
if ($row['kind'] === 'procedural') {
$procedural[] = $row['path'];
continue;
}
$old = $row['name'];
$path = $row['path'];
$kind = $row['kind'];
if (!str_starts_with($old, 'AKSRT_') && $old !== 'AKSRT') {
$errors[] = "Non-AKSRT type {$old} in {$path}";
continue;
}
// Domain
$domain_ns = null;
$rel_under = '';
if (str_starts_with($path, 'inc/helpers/')) {
$domain_ns = HELPER_DOMAIN[$old] ?? 'Core';
$rel_under = '';
} elseif (preg_match('#^inc/classes/([^/]+)(?:/(.*))?$#', $path, $pm)) {
$dom = $pm[1];
if (!isset(DOMAIN_NS[$dom])) {
$errors[] = "Unknown domain folder {$dom} for {$path}";
continue;
}
$domain_ns = DOMAIN_NS[$dom];
$rel_under = $pm[2] ?? '';
} else {
$errors[] = "Unmapped path {$path}";
continue;
}
$extra = aksrt_path_ns_segments($rel_under);
$short = aksrt_to_short($old);
// Strip redundant leading domain token from short name when not emptying it.
// AKSRT_Admin_AI_Controller → AdminAIController → AIController under Admin\.
if (str_starts_with($short, $domain_ns) && strlen($short) > strlen($domain_ns)) {
$rest = substr($short, strlen($domain_ns));
if ($rest !== '' && preg_match('/^[A-Z]/', $rest)) {
$short = $rest;
}
}
// PSR-4 root: src/AKSRT/ (avoids Windows case-collision with inc/classes/admin vs Admin).
$ns_parts = array_merge(['AKSRT', $domain_ns], $extra);
$fqcn = implode('\\', $ns_parts) . '\\' . $short;
$new_rel = 'src/AKSRT/' . implode('/', array_slice($ns_parts, 1)) . '/' . $short . '.php';
$entry = [
'kind' => $kind,
'old' => $old,
'new_fqcn' => $fqcn,
'namespace' => implode('\\', $ns_parts),
'short' => $short,
'old_path' => $path,
'new_path' => $new_rel,
'multi_source' => false,
];
if (isset($by_old[$old])) {
$errors[] = "Duplicate old name {$old}: {$by_old[$old]['old_path']} vs {$path}";
}
$by_old[$old] = $entry;
$entries[] = $entry;
}
// Mark multi-decl sources.
$by_path = [];
foreach ($entries as $i => $e) {
$by_path[$e['old_path']][] = $i;
}
foreach ($by_path as $path => $idxs) {
if (count($idxs) > 1) {
foreach ($idxs as $i) {
$entries[$i]['multi_source'] = true;
}
}
}
// Detect FQCN collisions.
$by_new = [];
foreach ($entries as $e) {
$k = $e['new_fqcn'];
if (isset($by_new[$k])) {
$errors[] = "FQCN collision {$k}: {$by_new[$k]} vs {$e['old']}";
}
$by_new[$k] = $e['old'];
}
// Detect new_path collisions (two types → same file).
$by_new_path = [];
foreach ($entries as $e) {
$k = $e['new_path'];
if (isset($by_new_path[$k])) {
$errors[] = "Path collision {$k}: {$by_new_path[$k]} vs {$e['old']}";
}
$by_new_path[$k] = $e['old'];
}
return [
'entries' => $entries,
'procedural' => $procedural,
'errors' => $errors,
'by_old' => $by_old,
];
}
$scanned = aksrt_scan_types($root);
$map = aksrt_build_map($scanned, $root);
$summary = [
'generated_at' => gmdate('c'),
'counts' => [
'types' => count($map['entries']),
'classes' => count(array_filter($map['entries'], static fn($e) => $e['kind'] === 'class')),
'traits' => count(array_filter($map['entries'], static fn($e) => $e['kind'] === 'trait')),
'interfaces' => count(array_filter($map['entries'], static fn($e) => $e['kind'] === 'interface')),
'procedural_files' => count($map['procedural']),
'multi_source_types' => count(array_filter($map['entries'], static fn($e) => $e['multi_source'])),
'errors' => count($map['errors']),
],
'procedural' => $map['procedural'],
'errors' => $map['errors'],
'entries' => $map['entries'],
];
echo "Types: {$summary['counts']['types']} (class={$summary['counts']['classes']} trait={$summary['counts']['traits']} iface={$summary['counts']['interfaces']})\n";
echo "Procedural files: {$summary['counts']['procedural_files']}\n";
echo "Multi-source types: {$summary['counts']['multi_source_types']}\n";
echo "Errors: {$summary['counts']['errors']}\n";
if ($map['errors']) {
foreach ($map['errors'] as $err) {
echo " ERROR: {$err}\n";
}
}
// Sample print.
foreach (array_slice($map['entries'], 0, 8) as $e) {
echo " {$e['old']} => {$e['new_fqcn']}\n {$e['old_path']} -> {$e['new_path']}\n";
}
if ($write) {
$dir = $root . '/tools/psr4-map';
if (!is_dir($dir) && !mkdir($dir, 0777, true) && !is_dir($dir)) {
fwrite(STDERR, "Cannot create {$dir}\n");
exit(1);
}
$file = $dir . '/map.json';
file_put_contents($file, json_encode($summary, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . "\n");
// Also CSV for quick review.
$csv = $dir . '/map.csv';
$fh = fopen($csv, 'wb');
fputcsv($fh, ['kind', 'old', 'new_fqcn', 'old_path', 'new_path', 'multi_source'], ',', '"', '\\');
foreach ($map['entries'] as $e) {
fputcsv($fh, [$e['kind'], $e['old'], $e['new_fqcn'], $e['old_path'], $e['new_path'], $e['multi_source'] ? '1' : '0'], ',', '"', '\\');
}
fclose($fh);
echo "Wrote {$file} and {$csv}\n";
}
exit($map['errors'] ? 1 : 0);
+215
View File
@@ -0,0 +1,215 @@
<?php
/**
* Robust multi-file splitter for PSR-4.
*
* @package AKSRT
*/
declare(strict_types=1);
$root = dirname(__DIR__);
$map = json_decode((string) file_get_contents($root . '/tools/psr4-map/map.json'), true, 512, JSON_THROW_ON_ERROR);
$by_old = [];
foreach ($map['entries'] as $e) {
$by_old[$e['old']] = $e;
}
/**
* Find all top-level type declarations with start offsets.
*
* @return list<array{name:string,kind:string,start:int,decl:int}>
*/
function list_types(string $text): array {
$out = [];
if (!preg_match_all(
'/^(?:abstract\s+|final\s+)?(class|trait|interface)\s+(\w+)/m',
$text,
$m,
PREG_SET_ORDER | PREG_OFFSET_CAPTURE
)) {
return [];
}
foreach ($m as $match) {
$decl = (int) $match[0][1];
$kind = $match[1][0];
$name = $match[2][0];
// Include preceding docblock.
$before = substr($text, 0, $decl);
$start = $decl;
if (preg_match('/(?:\n|^)(\s*\/\*\*[\s\S]*?\*\/\s*)\z/', $before, $dm, PREG_OFFSET_CAPTURE)) {
$start = (int) $dm[1][1];
}
$out[] = ['name' => $name, 'kind' => $kind, 'start' => $start, 'decl' => $decl];
}
return $out;
}
function extract_by_index(string $text, array $types, int $idx): string {
$start = $types[$idx]['start'];
// End is start of next type or EOF (but need end of braces of this type).
$brace = strpos($text, '{', $types[$idx]['decl']);
$len = strlen($text);
$depth = 0;
$in_str = false;
$str_q = '';
$in_line = false;
$in_block = false;
$escape = false;
for ($i = $brace; $i < $len; $i++) {
$ch = $text[$i];
$next = $i + 1 < $len ? $text[$i + 1] : '';
if ($in_line) {
if ($ch === "\n") {
$in_line = false;
}
continue;
}
if ($in_block) {
if ($ch === '*' && $next === '/') {
$in_block = false;
$i++;
}
continue;
}
if ($in_str) {
if ($escape) {
$escape = false;
continue;
}
if ($ch === '\\') {
$escape = true;
continue;
}
if ($ch === $str_q) {
$in_str = false;
}
continue;
}
if ($ch === '/' && $next === '/') {
$in_line = true;
$i++;
continue;
}
if ($ch === '/' && $next === '*') {
$in_block = true;
$i++;
continue;
}
if ($ch === '"' || $ch === "'") {
$in_str = true;
$str_q = $ch;
continue;
}
if ($ch === '{') {
$depth++;
} elseif ($ch === '}') {
$depth--;
if ($depth === 0) {
return substr($text, $start, $i - $start + 1);
}
}
}
throw new RuntimeException('brace match failed for ' . $types[$idx]['name']);
}
$rep = [];
foreach ($map['entries'] as $e) {
$rep[$e['old']] = '\\' . $e['new_fqcn'];
}
$rep['AKSRT_Creator_Revenue'] = '\\AKSRT\\Payment\\CreatorRevenue';
uksort($rep, static fn($a, $b) => strlen($b) <=> strlen($a));
function rewrite_refs(string $code, array $rep): string {
$preserve = [
'AKSRT_DIR', 'AKSRT_URI', 'AKSRT_VERSION', 'AKSRT_NO_EMAIL_GATE',
'AKSRT_PAY_TYPE_NO', 'AKSRT_PAY_TYPE_READING', 'AKSRT_PAY_TYPE_DOWNLOAD',
'AKSRT_PAY_TYPE_GALLERY', 'AKSRT_PAY_TYPE_VIDEO', 'AKSRT_PAY_TYPE_VIP',
];
foreach ($preserve as $i => $tok) {
$code = str_replace($tok, "\0P{$i}\0", $code);
}
$pattern = '/\b(' . implode('|', array_map(static fn($k) => preg_quote($k, '/'), array_keys($rep))) . ')\b/';
$code = preg_replace_callback($pattern, static fn($m) => $rep[$m[1]] ?? $m[1], $code) ?? $code;
foreach ($preserve as $i => $tok) {
$code = str_replace("\0P{$i}\0", $tok, $code);
}
return $code;
}
$files = [
'inc/classes/payment/class-aksrt-payment-gateway.php',
'inc/classes/widgets/class-aksrt-forum-widgets.php',
'inc/classes/widgets/class-aksrt-home-widgets.php',
'inc/classes/widgets/class-aksrt-shop-widgets.php',
'inc/classes/widgets/class-aksrt-widgets-batch1.php',
'inc/classes/widgets/class-aksrt-widgets-new.php',
'inc/classes/widgets/class-aksrt-widgets-original.php',
];
foreach ($files as $git_path) {
$text = shell_exec('git -C ' . escapeshellarg($root) . ' show HEAD:' . escapeshellarg($git_path));
if (!$text) {
fwrite(STDERR, "git show fail $git_path\n");
continue;
}
$types = list_types($text);
echo $git_path, ' has ', count($types), " types: ", implode(', ', array_column($types, 'name')), "\n";
foreach ($types as $idx => $info) {
$old = $info['name'];
if (!isset($by_old[$old])) {
fwrite(STDERR, " unmapped $old\n");
continue;
}
$entry = $by_old[$old];
$chunk = extract_by_index($text, $types, $idx);
// Rename: only the declaration line's name.
$chunk = preg_replace(
'/^((?:abstract\s+|final\s+)?' . preg_quote($info['kind'], '/') . '\s+)' . preg_quote($old, '/') . '\b/m',
'$1' . $entry['short'],
$chunk,
1
);
$chunk = rewrite_refs($chunk, $rep);
$ns = $entry['namespace'];
// Shorten same-namespace refs BUT not if it would re-break declaration - declaration already short.
$chunk = preg_replace('/\\\\' . preg_quote($ns, '/') . '\\\\(\w+)/', '$1', $chunk) ?? $chunk;
// Global WP types.
foreach (['WP_Widget', 'WP_REST_Request', 'WP_REST_Response', 'WP_Error', 'WP_Post', 'WP_User', 'WP_Query'] as $g) {
$chunk = preg_replace('/(?<!\\\\)\b' . $g . '\b/', '\\' . $g, $chunk) ?? $chunk;
}
$chunk = str_replace('\\\\', '\\', $chunk);
$out = "<?php\n/**\n * @package AKSRT\n */\n\nnamespace {$ns};\n\ndefined('ABSPATH') || exit;\n\n" . rtrim($chunk) . "\n";
// Verify
if (!preg_match('/\b' . preg_quote($info['kind'], '/') . '\s+' . preg_quote($entry['short'], '/') . '\b/', $out)) {
fwrite(STDERR, " VERIFY FAIL $old -> {$entry['short']}\n");
fwrite(STDERR, " head: " . substr($out, 0, 250) . "\n");
continue;
}
$path = $root . '/' . $entry['new_path'];
if (!is_dir(dirname($path))) {
mkdir(dirname($path), 0777, true);
}
file_put_contents($path, $out);
echo " OK {$old} => {$entry['new_path']} (", strlen($out), " bytes)\n";
}
}
// Globalize WP_* in all src files once more carefully
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($root . '/src/AKSRT'));
foreach ($rii as $f) {
if (!$f->isFile() || !str_ends_with($f->getFilename(), '.php')) {
continue;
}
$p = $f->getPathname();
$t = (string) file_get_contents($p);
$orig = $t;
foreach (['WP_REST_Request', 'WP_REST_Response', 'WP_Error', 'WP_Post', 'WP_User', 'WP_Query', 'WP_Widget', 'WP_Admin_Bar', 'WP_HTTP_Response', 'WP_Term'] as $g) {
// only when used as type/extends/new/catch - simple: bare WP_ not already escaped
$t = preg_replace('/(?<!\\\\|[\w\\\\])' . preg_quote($g, '/') . '\b/', '\\' . $g, $t) ?? $t;
}
if ($t !== $orig) {
file_put_contents($p, $t);
}
}
echo "done\n";
+289
View File
@@ -0,0 +1,289 @@
kind,old,new_fqcn,old_path,new_path,multi_source
class,AKSRT_Admin_AI_Controller,"AKSRT\Admin\AIController",inc/classes/admin/class-aksrt-admin-ai-controller.php,src/AKSRT/Admin/AIController.php,0
class,AKSRT_Admin_Comment_Controller,"AKSRT\Admin\CommentController",inc/classes/admin/class-aksrt-admin-comment-controller.php,src/AKSRT/Admin/CommentController.php,0
class,AKSRT_Admin_Controller_Base,"AKSRT\Admin\ControllerBase",inc/classes/admin/class-aksrt-admin-controller-base.php,src/AKSRT/Admin/ControllerBase.php,0
class,AKSRT_Admin_Extension_Controller,"AKSRT\Admin\ExtensionController",inc/classes/admin/class-aksrt-admin-extension-controller.php,src/AKSRT/Admin/ExtensionController.php,0
class,AKSRT_Admin_Forum_Controller,"AKSRT\Admin\ForumController",inc/classes/admin/class-aksrt-admin-forum-controller.php,src/AKSRT/Admin/ForumController.php,0
class,AKSRT_Admin_Global_Controller,"AKSRT\Admin\GlobalController",inc/classes/admin/class-aksrt-admin-global-controller.php,src/AKSRT/Admin/GlobalController.php,0
class,AKSRT_Admin_Import_Export_Controller,"AKSRT\Admin\ImportExportController",inc/classes/admin/class-aksrt-admin-import-export-controller.php,src/AKSRT/Admin/ImportExportController.php,0
class,AKSRT_Admin_Message_Controller,"AKSRT\Admin\MessageController",inc/classes/admin/class-aksrt-admin-message-controller.php,src/AKSRT/Admin/MessageController.php,0
class,AKSRT_Admin_Page_Display_Controller,"AKSRT\Admin\PageDisplayController",inc/classes/admin/class-aksrt-admin-page-display-controller.php,src/AKSRT/Admin/PageDisplayController.php,0
class,AKSRT_Admin_Payment_Controller,"AKSRT\Admin\PaymentController",inc/classes/admin/class-aksrt-admin-payment-controller.php,src/AKSRT/Admin/PaymentController.php,0
class,AKSRT_Admin_Permissions_Controller,"AKSRT\Admin\PermissionsController",inc/classes/admin/class-aksrt-admin-permissions-controller.php,src/AKSRT/Admin/PermissionsController.php,0
class,AKSRT_Admin_Post_List_Controller,"AKSRT\Admin\PostListController",inc/classes/admin/class-aksrt-admin-post-list-controller.php,src/AKSRT/Admin/PostListController.php,0
class,AKSRT_Admin_Schema_Provider,"AKSRT\Admin\SchemaProvider",inc/classes/admin/class-aksrt-admin-schema-provider.php,src/AKSRT/Admin/SchemaProvider.php,0
trait,AKSRT_Admin_Shop_Controller_Coupon_Gateway_Operations,"AKSRT\Admin\ShopControllerCouponGatewayOperations",inc/classes/admin/class-aksrt-admin-shop-controller-coupon-gateway-operations.php,src/AKSRT/Admin/ShopControllerCouponGatewayOperations.php,0
trait,AKSRT_Admin_Shop_Controller_Frontend_Flow_Operations,"AKSRT\Admin\ShopControllerFrontendFlowOperations",inc/classes/admin/class-aksrt-admin-shop-controller-frontend-flow-operations.php,src/AKSRT/Admin/ShopControllerFrontendFlowOperations.php,0
trait,AKSRT_Admin_Shop_Controller_Fulfillment_Operations,"AKSRT\Admin\ShopControllerFulfillmentOperations",inc/classes/admin/class-aksrt-admin-shop-controller-fulfillment-operations.php,src/AKSRT/Admin/ShopControllerFulfillmentOperations.php,0
trait,AKSRT_Admin_Shop_Controller_Order_Operations,"AKSRT\Admin\ShopControllerOrderOperations",inc/classes/admin/class-aksrt-admin-shop-controller-order-operations.php,src/AKSRT/Admin/ShopControllerOrderOperations.php,0
trait,AKSRT_Admin_Shop_Controller_Product_Admin_Columns,"AKSRT\Admin\ShopControllerProductAdminColumns",inc/classes/admin/class-aksrt-admin-shop-controller-product-admin-columns.php,src/AKSRT/Admin/ShopControllerProductAdminColumns.php,0
trait,AKSRT_Admin_Shop_Controller_Product_Operations,"AKSRT\Admin\ShopControllerProductOperations",inc/classes/admin/class-aksrt-admin-shop-controller-product-operations.php,src/AKSRT/Admin/ShopControllerProductOperations.php,0
trait,AKSRT_Admin_Shop_Controller_Variant_Export_Operations,"AKSRT\Admin\ShopControllerVariantExportOperations",inc/classes/admin/class-aksrt-admin-shop-controller-variant-export-operations.php,src/AKSRT/Admin/ShopControllerVariantExportOperations.php,0
class,AKSRT_Admin_Shop_Controller,"AKSRT\Admin\ShopController",inc/classes/admin/class-aksrt-admin-shop-controller.php,src/AKSRT/Admin/ShopController.php,0
class,AKSRT_Admin_Tools_Controller,"AKSRT\Admin\ToolsController",inc/classes/admin/class-aksrt-admin-tools-controller.php,src/AKSRT/Admin/ToolsController.php,0
trait,AKSRT_Admin_User_Controller_Auth_Phone_Operations,"AKSRT\Admin\UserControllerAuthPhoneOperations",inc/classes/admin/class-aksrt-admin-user-controller-auth-phone-operations.php,src/AKSRT/Admin/UserControllerAuthPhoneOperations.php,0
trait,AKSRT_Admin_User_Controller_Follow_Operations,"AKSRT\Admin\UserControllerFollowOperations",inc/classes/admin/class-aksrt-admin-user-controller-follow-operations.php,src/AKSRT/Admin/UserControllerFollowOperations.php,0
trait,AKSRT_Admin_User_Controller_Invite_Operations,"AKSRT\Admin\UserControllerInviteOperations",inc/classes/admin/class-aksrt-admin-user-controller-invite-operations.php,src/AKSRT/Admin/UserControllerInviteOperations.php,0
trait,AKSRT_Admin_User_Controller_Report_Operations,"AKSRT\Admin\UserControllerReportOperations",inc/classes/admin/class-aksrt-admin-user-controller-report-operations.php,src/AKSRT/Admin/UserControllerReportOperations.php,0
trait,AKSRT_Admin_User_Controller_Restriction_Operations,"AKSRT\Admin\UserControllerRestrictionOperations",inc/classes/admin/class-aksrt-admin-user-controller-restriction-operations.php,src/AKSRT/Admin/UserControllerRestrictionOperations.php,0
trait,AKSRT_Admin_User_Controller_Verify_Integrations,"AKSRT\Admin\UserControllerVerifyIntegrations",inc/classes/admin/class-aksrt-admin-user-controller-verify-integrations.php,src/AKSRT/Admin/UserControllerVerifyIntegrations.php,0
class,AKSRT_Admin_User_Controller,"AKSRT\Admin\UserController",inc/classes/admin/class-aksrt-admin-user-controller.php,src/AKSRT/Admin/UserController.php,0
class,AKSRT_Admin,"AKSRT\Admin\Admin",inc/classes/admin/class-aksrt-admin.php,src/AKSRT/Admin/Admin.php,0
trait,AKSRT_Admin_Forum_Controller_Part_1,"AKSRT\Admin\ForumControllerPart1",inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-1.php,src/AKSRT/Admin/ForumControllerPart1.php,0
trait,AKSRT_Admin_Forum_Controller_Part_2,"AKSRT\Admin\ForumControllerPart2",inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-2.php,src/AKSRT/Admin/ForumControllerPart2.php,0
trait,AKSRT_Admin_Global_Controller_Part_1,"AKSRT\Admin\GlobalControllerPart1",inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-1.php,src/AKSRT/Admin/GlobalControllerPart1.php,0
trait,AKSRT_Admin_Global_Controller_Part_2,"AKSRT\Admin\GlobalControllerPart2",inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-2.php,src/AKSRT/Admin/GlobalControllerPart2.php,0
trait,AKSRT_Admin_Homepage_Settings_Rest,"AKSRT\Admin\HomepageSettingsRest",inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-homepage-settings-rest.php,src/AKSRT/Admin/HomepageSettingsRest.php,0
trait,AKSRT_Admin_Import_Export_Controller_Part_1,"AKSRT\Admin\ImportExportControllerPart1",inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-1.php,src/AKSRT/Admin/ImportExportControllerPart1.php,0
trait,AKSRT_Admin_Import_Export_Controller_Part_2,"AKSRT\Admin\ImportExportControllerPart2",inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-2.php,src/AKSRT/Admin/ImportExportControllerPart2.php,0
class,AKSRT_Admin_Pay_After_Sale,"AKSRT\Admin\Native\PayAfterSale",inc/classes/admin/native/class-aksrt-admin-pay-after-sale.php,src/AKSRT/Admin/Native/PayAfterSale.php,0
class,AKSRT_Admin_Pay_Charge_Cards,"AKSRT\Admin\Native\PayChargeCards",inc/classes/admin/native/class-aksrt-admin-pay-charge-cards.php,src/AKSRT/Admin/Native/PayChargeCards.php,0
class,AKSRT_Admin_Pay_Coupons,"AKSRT\Admin\Native\PayCoupons",inc/classes/admin/native/class-aksrt-admin-pay-coupons.php,src/AKSRT/Admin/Native/PayCoupons.php,0
class,AKSRT_Admin_Pay_Download_Logs,"AKSRT\Admin\Native\PayDownloadLogs",inc/classes/admin/native/class-aksrt-admin-pay-download-logs.php,src/AKSRT/Admin/Native/PayDownloadLogs.php,0
class,AKSRT_Admin_Pay_Income,"AKSRT\Admin\Native\PayIncome",inc/classes/admin/native/class-aksrt-admin-pay-income.php,src/AKSRT/Admin/Native/PayIncome.php,0
class,AKSRT_Admin_Pay_Menus,"AKSRT\Admin\Native\PayMenus",inc/classes/admin/native/class-aksrt-admin-pay-menus.php,src/AKSRT/Admin/Native/PayMenus.php,0
class,AKSRT_Admin_Pay_Orders,"AKSRT\Admin\Native\PayOrders",inc/classes/admin/native/class-aksrt-admin-pay-orders.php,src/AKSRT/Admin/Native/PayOrders.php,0
class,AKSRT_Admin_Pay_Products,"AKSRT\Admin\Native\PayProducts",inc/classes/admin/native/class-aksrt-admin-pay-products.php,src/AKSRT/Admin/Native/PayProducts.php,0
class,AKSRT_Admin_Pay_Rebate,"AKSRT\Admin\Native\PayRebate",inc/classes/admin/native/class-aksrt-admin-pay-rebate.php,src/AKSRT/Admin/Native/PayRebate.php,0
class,AKSRT_Admin_Pay_Shipping,"AKSRT\Admin\Native\PayShipping",inc/classes/admin/native/class-aksrt-admin-pay-shipping.php,src/AKSRT/Admin/Native/PayShipping.php,0
class,AKSRT_Admin_Pay_Withdrawals,"AKSRT\Admin\Native\PayWithdrawals",inc/classes/admin/native/class-aksrt-admin-pay-withdrawals.php,src/AKSRT/Admin/Native/PayWithdrawals.php,0
class,AKSRT_Admin_Users_Menus,"AKSRT\Admin\Native\UsersMenus",inc/classes/admin/native/class-aksrt-admin-users-menus.php,src/AKSRT/Admin/Native/UsersMenus.php,0
class,AKSRT_Admin_Schema_Extensions_Audit,"AKSRT\Admin\Schema\SchemaExtensionsAudit",inc/classes/admin/schema/class-aksrt-admin-schema-extensions-audit.php,src/AKSRT/Admin/Schema/SchemaExtensionsAudit.php,0
class,AKSRT_Admin_Schema_Extensions_Docs_Mode,"AKSRT\Admin\Schema\SchemaExtensionsDocsMode",inc/classes/admin/schema/class-aksrt-admin-schema-extensions-docs-mode.php,src/AKSRT/Admin/Schema/SchemaExtensionsDocsMode.php,0
class,AKSRT_Admin_Schema_Extensions_IP,"AKSRT\Admin\Schema\SchemaExtensionsIP",inc/classes/admin/schema/class-aksrt-admin-schema-extensions-ip.php,src/AKSRT/Admin/Schema/SchemaExtensionsIP.php,0
class,AKSRT_Admin_Schema_Extensions_Push,"AKSRT\Admin\Schema\SchemaExtensionsPush",inc/classes/admin/schema/class-aksrt-admin-schema-extensions-push.php,src/AKSRT/Admin/Schema/SchemaExtensionsPush.php,0
class,AKSRT_Admin_Schema_Extensions_Security,"AKSRT\Admin\Schema\SchemaExtensionsSecurity",inc/classes/admin/schema/class-aksrt-admin-schema-extensions-security.php,src/AKSRT/Admin/Schema/SchemaExtensionsSecurity.php,0
class,AKSRT_Admin_Schema_Extensions,"AKSRT\Admin\Schema\SchemaExtensions",inc/classes/admin/schema/class-aksrt-admin-schema-extensions.php,src/AKSRT/Admin/Schema/SchemaExtensions.php,0
class,AKSRT_Admin_Schema_Forum_Basic,"AKSRT\Admin\Schema\SchemaForumBasic",inc/classes/admin/schema/class-aksrt-admin-schema-forum-basic.php,src/AKSRT/Admin/Schema/SchemaForumBasic.php,0
class,AKSRT_Admin_Schema_Forum_Board_Page,"AKSRT\Admin\Schema\SchemaForumBoardPage",inc/classes/admin/schema/class-aksrt-admin-schema-forum-board-page.php,src/AKSRT/Admin/Schema/SchemaForumBoardPage.php,0
class,AKSRT_Admin_Schema_Forum_Credits,"AKSRT\Admin\Schema\SchemaForumCredits",inc/classes/admin/schema/class-aksrt-admin-schema-forum-credits.php,src/AKSRT/Admin/Schema/SchemaForumCredits.php,0
class,AKSRT_Admin_Schema_Forum_Homepage,"AKSRT\Admin\Schema\SchemaForumHomepage",inc/classes/admin/schema/class-aksrt-admin-schema-forum-homepage.php,src/AKSRT/Admin/Schema/SchemaForumHomepage.php,0
class,AKSRT_Admin_Schema_Forum_Names,"AKSRT\Admin\Schema\SchemaForumNames",inc/classes/admin/schema/class-aksrt-admin-schema-forum-names.php,src/AKSRT/Admin/Schema/SchemaForumNames.php,0
class,AKSRT_Admin_Schema_Forum_Other,"AKSRT\Admin\Schema\SchemaForumOther",inc/classes/admin/schema/class-aksrt-admin-schema-forum-other.php,src/AKSRT/Admin/Schema/SchemaForumOther.php,0
class,AKSRT_Admin_Schema_Forum_Permissions,"AKSRT\Admin\Schema\SchemaForumPermissions",inc/classes/admin/schema/class-aksrt-admin-schema-forum-permissions.php,src/AKSRT/Admin/Schema/SchemaForumPermissions.php,0
class,AKSRT_Admin_Schema_Forum_Post_Page,"AKSRT\Admin\Schema\SchemaForumPostPage",inc/classes/admin/schema/class-aksrt-admin-schema-forum-post-page.php,src/AKSRT/Admin/Schema/SchemaForumPostPage.php,0
class,AKSRT_Admin_Schema_Forum_Reply,"AKSRT\Admin\Schema\SchemaForumReply",inc/classes/admin/schema/class-aksrt-admin-schema-forum-reply.php,src/AKSRT/Admin/Schema/SchemaForumReply.php,0
class,AKSRT_Admin_Schema_Forum_Upload,"AKSRT\Admin\Schema\SchemaForumUpload",inc/classes/admin/schema/class-aksrt-admin-schema-forum-upload.php,src/AKSRT/Admin/Schema/SchemaForumUpload.php,0
class,AKSRT_Admin_Schema_Forum,"AKSRT\Admin\Schema\SchemaForum",inc/classes/admin/schema/class-aksrt-admin-schema-forum.php,src/AKSRT/Admin/Schema/SchemaForum.php,0
class,AKSRT_Admin_Schema_Global,"AKSRT\Admin\Schema\GlobalSchema",inc/classes/admin/schema/class-aksrt-admin-schema-global.php,src/AKSRT/Admin/Schema/GlobalSchema.php,0
class,AKSRT_Admin_Schema_Page_Display,"AKSRT\Admin\Schema\SchemaPageDisplay",inc/classes/admin/schema/class-aksrt-admin-schema-page-display.php,src/AKSRT/Admin/Schema/SchemaPageDisplay.php,0
class,AKSRT_Admin_Schema_Payment,"AKSRT\Admin\Schema\SchemaPayment",inc/classes/admin/schema/class-aksrt-admin-schema-payment.php,src/AKSRT/Admin/Schema/SchemaPayment.php,0
class,AKSRT_Admin_Schema_Permissions,"AKSRT\Admin\Schema\SchemaPermissions",inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php,src/AKSRT/Admin/Schema/SchemaPermissions.php,0
class,AKSRT_Admin_Schema_Post_List,"AKSRT\Admin\Schema\SchemaPostList",inc/classes/admin/schema/class-aksrt-admin-schema-post-list.php,src/AKSRT/Admin/Schema/SchemaPostList.php,0
class,AKSRT_Admin_Schema_Shop_Basic,"AKSRT\Admin\Schema\SchemaShopBasic",inc/classes/admin/schema/class-aksrt-admin-schema-shop-basic.php,src/AKSRT/Admin/Schema/SchemaShopBasic.php,0
class,AKSRT_Admin_Schema_Shop_Contact,"AKSRT\Admin\Schema\SchemaShopContact",inc/classes/admin/schema/class-aksrt-admin-schema-shop-contact.php,src/AKSRT/Admin/Schema/SchemaShopContact.php,0
class,AKSRT_Admin_Schema_Shop_List,"AKSRT\Admin\Schema\SchemaShopList",inc/classes/admin/schema/class-aksrt-admin-schema-shop-list.php,src/AKSRT/Admin/Schema/SchemaShopList.php,0
class,AKSRT_Admin_Schema_Shop_Product_Defaults,"AKSRT\Admin\Schema\SchemaShopProductDefaults",inc/classes/admin/schema/class-aksrt-admin-schema-shop-product-defaults.php,src/AKSRT/Admin/Schema/SchemaShopProductDefaults.php,0
class,AKSRT_Admin_Schema_Shop_Shipping_Config,"AKSRT\Admin\Schema\SchemaShopShippingConfig",inc/classes/admin/schema/class-aksrt-admin-schema-shop-shipping-config.php,src/AKSRT/Admin/Schema/SchemaShopShippingConfig.php,0
class,AKSRT_Admin_Schema_Shop_Single,"AKSRT\Admin\Schema\SchemaShopSingle",inc/classes/admin/schema/class-aksrt-admin-schema-shop-single.php,src/AKSRT/Admin/Schema/SchemaShopSingle.php,0
class,AKSRT_Admin_Schema_Shop_Timing,"AKSRT\Admin\Schema\SchemaShopTiming",inc/classes/admin/schema/class-aksrt-admin-schema-shop-timing.php,src/AKSRT/Admin/Schema/SchemaShopTiming.php,0
class,AKSRT_Admin_Schema_Shop,"AKSRT\Admin\Schema\SchemaShop",inc/classes/admin/schema/class-aksrt-admin-schema-shop.php,src/AKSRT/Admin/Schema/SchemaShop.php,0
class,AKSRT_Admin_Schema_Tools_Backup,"AKSRT\Admin\Schema\SchemaToolsBackup",inc/classes/admin/schema/class-aksrt-admin-schema-tools-backup.php,src/AKSRT/Admin/Schema/SchemaToolsBackup.php,0
class,AKSRT_Admin_Schema_Tools_Email_Rollback,"AKSRT\Admin\Schema\SchemaToolsEmailRollback",inc/classes/admin/schema/class-aksrt-admin-schema-tools-email-rollback.php,src/AKSRT/Admin/Schema/SchemaToolsEmailRollback.php,0
class,AKSRT_Admin_Schema_Tools_Health,"AKSRT\Admin\Schema\SchemaToolsHealth",inc/classes/admin/schema/class-aksrt-admin-schema-tools-health.php,src/AKSRT/Admin/Schema/SchemaToolsHealth.php,0
class,AKSRT_Admin_Schema_Tools_Import_Export,"AKSRT\Admin\Schema\SchemaToolsImportExport",inc/classes/admin/schema/class-aksrt-admin-schema-tools-import-export.php,src/AKSRT/Admin/Schema/SchemaToolsImportExport.php,0
class,AKSRT_Admin_Schema_Tools,"AKSRT\Admin\Schema\SchemaTools",inc/classes/admin/schema/class-aksrt-admin-schema-tools.php,src/AKSRT/Admin/Schema/SchemaTools.php,0
class,AKSRT_Admin_Schema_Users,"AKSRT\Admin\Schema\SchemaUsers",inc/classes/admin/schema/class-aksrt-admin-schema-users.php,src/AKSRT/Admin/Schema/SchemaUsers.php,0
class,AKSRT_Admin_Schema_Post_List_List,"AKSRT\Admin\Schema\PostList\SchemaPostListList",inc/classes/admin/schema/post-list/class-aksrt-admin-schema-post-list-list.php,src/AKSRT/Admin/Schema/PostList/SchemaPostListList.php,0
class,AKSRT_AI_Prompt,"AKSRT\Ai\AIPrompt",inc/classes/ai/class-aksrt-ai-prompt.php,src/AKSRT/Ai/AIPrompt.php,0
class,AKSRT_AI_SEO,"AKSRT\Ai\AISEO",inc/classes/ai/class-aksrt-ai-seo.php,src/AKSRT/Ai/AISEO.php,0
class,AKSRT_AI,"AKSRT\Ai\AI",inc/classes/ai/class-aksrt-ai.php,src/AKSRT/Ai/AI.php,0
trait,AKSRT_Auth_Service_Part_1a,"AKSRT\Auth\ServicePart1a",inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1a.php,src/AKSRT/Auth/ServicePart1a.php,0
trait,AKSRT_Auth_Service_Part_1b,"AKSRT\Auth\ServicePart1b",inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1b.php,src/AKSRT/Auth/ServicePart1b.php,0
class,AKSRT_Auth_Email_Verification,"AKSRT\Auth\EmailVerification",inc/classes/auth/class-aksrt-auth-email-verification.php,src/AKSRT/Auth/EmailVerification.php,0
class,AKSRT_Auth_Router,"AKSRT\Auth\Router",inc/classes/auth/class-aksrt-auth-router.php,src/AKSRT/Auth/Router.php,0
class,AKSRT_Auth_Service,"AKSRT\Auth\Service",inc/classes/auth/class-aksrt-auth-service.php,src/AKSRT/Auth/Service.php,0
class,AKSRT_Email_Rollback,"AKSRT\Auth\EmailRollback",inc/classes/auth/class-aksrt-email-rollback.php,src/AKSRT/Auth/EmailRollback.php,0
class,AKSRT_Moderation,"AKSRT\Auth\Moderation",inc/classes/auth/class-aksrt-moderation.php,src/AKSRT/Auth/Moderation.php,0
class,AKSRT_OAuth_Proxy_Client,"AKSRT\Auth\OAuthProxyClient",inc/classes/auth/class-aksrt-oauth-proxy-client.php,src/AKSRT/Auth/OAuthProxyClient.php,0
class,AKSRT_OAuth_Proxy_Server,"AKSRT\Auth\OAuthProxyServer",inc/classes/auth/class-aksrt-oauth-proxy-server.php,src/AKSRT/Auth/OAuthProxyServer.php,0
class,AKSRT_OAuth,"AKSRT\Auth\OAuth",inc/classes/auth/class-aksrt-oauth.php,src/AKSRT/Auth/OAuth.php,0
trait,AKSRT_Moderation_Part_1,"AKSRT\Auth\ModerationPart1",inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-1.php,src/AKSRT/Auth/ModerationPart1.php,0
trait,AKSRT_Moderation_Part_2,"AKSRT\Auth\ModerationPart2",inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-2.php,src/AKSRT/Auth/ModerationPart2.php,0
trait,AKSRT_OAuth_Part_1,"AKSRT\Auth\OAuthPart1",inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-1.php,src/AKSRT/Auth/OAuthPart1.php,0
trait,AKSRT_OAuth_Part_2,"AKSRT\Auth\OAuthPart2",inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-2.php,src/AKSRT/Auth/OAuthPart2.php,0
class,AKSRT_Content_Pay,"AKSRT\Content\Pay",inc/classes/content/class-aksrt-content-pay.php,src/AKSRT/Content/Pay.php,0
class,AKSRT_Content_Visibility,"AKSRT\Content\Visibility",inc/classes/content/class-aksrt-content-visibility.php,src/AKSRT/Content/Visibility.php,0
class,AKSRT_Download_State,"AKSRT\Content\DownloadState",inc/classes/content/class-aksrt-download-state.php,src/AKSRT/Content/DownloadState.php,0
class,AKSRT_Download,"AKSRT\Content\Download",inc/classes/content/class-aksrt-download.php,src/AKSRT/Content/Download.php,0
class,AKSRT_Vip_Service,"AKSRT\Content\VipService",inc/classes/content/class-aksrt-vip-service.php,src/AKSRT/Content/VipService.php,0
trait,AKSRT_Content_Pay_Helpers,"AKSRT\Content\PayHelpers",inc/classes/content/content-pay-traits/trait-aksrt-content-pay-helpers.php,src/AKSRT/Content/PayHelpers.php,0
trait,AKSRT_Content_Pay_Orders,"AKSRT\Content\PayOrders",inc/classes/content/content-pay-traits/trait-aksrt-content-pay-orders.php,src/AKSRT/Content/PayOrders.php,0
trait,AKSRT_Content_Pay_Rest,"AKSRT\Content\PayRest",inc/classes/content/content-pay-traits/trait-aksrt-content-pay-rest.php,src/AKSRT/Content/PayRest.php,0
trait,AKSRT_Vip_Service_Packages,"AKSRT\Content\VipServicePackages",inc/classes/content/vip-service-traits/trait-aksrt-vip-service-packages.php,src/AKSRT/Content/VipServicePackages.php,0
trait,AKSRT_Vip_Service_Purchase,"AKSRT\Content\VipServicePurchase",inc/classes/content/vip-service-traits/trait-aksrt-vip-service-purchase.php,src/AKSRT/Content/VipServicePurchase.php,0
trait,AKSRT_Vip_Service_Rest,"AKSRT\Content\VipServiceRest",inc/classes/content/vip-service-traits/trait-aksrt-vip-service-rest.php,src/AKSRT/Content/VipServiceRest.php,0
class,AKSRT_Category_Rewrite,"AKSRT\Core\CategoryRewrite",inc/classes/core/class-aksrt-category-rewrite.php,src/AKSRT/Core/CategoryRewrite.php,0
class,AKSRT_Comment_Actions,"AKSRT\Core\CommentActions",inc/classes/core/class-aksrt-comment-actions.php,src/AKSRT/Core/CommentActions.php,0
class,AKSRT_DB_Migrator,"AKSRT\Core\DBMigrator",inc/classes/core/class-aksrt-db-migrator.php,src/AKSRT/Core/DBMigrator.php,0
class,AKSRT_Docs_Presenter,"AKSRT\Core\DocsPresenter",inc/classes/core/class-aksrt-docs-presenter.php,src/AKSRT/Core/DocsPresenter.php,0
class,AKSRT_Front_Submit,"AKSRT\Core\FrontSubmit",inc/classes/core/class-aksrt-front-submit.php,src/AKSRT/Core/FrontSubmit.php,0
class,AKSRT_Go_Redirect,"AKSRT\Core\GoRedirect",inc/classes/core/class-aksrt-go-redirect.php,src/AKSRT/Core/GoRedirect.php,0
class,AKSRT_Home_Modules,"AKSRT\Core\HomeModules",inc/classes/core/class-aksrt-home-modules.php,src/AKSRT/Core/HomeModules.php,0
class,AKSRT_Post_Meta_Box,"AKSRT\Core\PostMetaBox",inc/classes/core/class-aksrt-post-meta-box.php,src/AKSRT/Core/PostMetaBox.php,0
class,AKSRT_Resource_Meta_Box,"AKSRT\Core\ResourceMetaBox",inc/classes/core/class-aksrt-resource-meta-box.php,src/AKSRT/Core/ResourceMetaBox.php,0
class,AKSRT_Scripts,"AKSRT\Core\Scripts",inc/classes/core/class-aksrt-scripts.php,src/AKSRT/Core/Scripts.php,0
class,AKSRT_SEO_Head,"AKSRT\Core\SEOHead",inc/classes/core/class-aksrt-seo-head.php,src/AKSRT/Core/SEOHead.php,0
class,AKSRT_SEO_Meta_Box,"AKSRT\Core\SEOMetaBox",inc/classes/core/class-aksrt-seo-meta-box.php,src/AKSRT/Core/SEOMetaBox.php,0
class,AKSRT_Setup,"AKSRT\Core\Setup",inc/classes/core/class-aksrt-setup.php,src/AKSRT/Core/Setup.php,0
class,AKSRT_Stats_Tracker,"AKSRT\Core\StatsTracker",inc/classes/core/class-aksrt-stats-tracker.php,src/AKSRT/Core/StatsTracker.php,0
class,AKSRT_Templates,"AKSRT\Core\Templates",inc/classes/core/class-aksrt-templates.php,src/AKSRT/Core/Templates.php,0
class,AKSRT_Term_Meta,"AKSRT\Core\TermMeta",inc/classes/core/class-aksrt-term-meta.php,src/AKSRT/Core/TermMeta.php,0
class,AKSRT_Update_Checker,"AKSRT\Core\UpdateChecker",inc/classes/core/class-aksrt-update-checker.php,src/AKSRT/Core/UpdateChecker.php,0
trait,AKSRT_DB_Migrator_Part_2,"AKSRT\Core\DBMigratorPart2",inc/classes/core/db-traits/trait-aksrt-db-migrator-part-2.php,src/AKSRT/Core/DBMigratorPart2.php,0
trait,AKSRT_DB_Migrator_Part_3,"AKSRT\Core\DBMigratorPart3",inc/classes/core/db-traits/trait-aksrt-db-migrator-part-3.php,src/AKSRT/Core/DBMigratorPart3.php,0
trait,AKSRT_Scripts_Part_1b,"AKSRT\Core\ScriptsPart1b",inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1b.php,src/AKSRT/Core/ScriptsPart1b.php,0
trait,AKSRT_Scripts_Part_1c,"AKSRT\Core\ScriptsPart1c",inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1c.php,src/AKSRT/Core/ScriptsPart1c.php,0
trait,AKSRT_Scripts_Part_2,"AKSRT\Core\ScriptsPart2",inc/classes/core/scripts-traits/trait-aksrt-scripts-part-2.php,src/AKSRT/Core/ScriptsPart2.php,0
trait,AKSRT_Setup_Part_1,"AKSRT\Core\SetupPart1",inc/classes/core/setup-traits/trait-aksrt-setup-part-1.php,src/AKSRT/Core/SetupPart1.php,0
trait,AKSRT_Setup_Part_2,"AKSRT\Core\SetupPart2",inc/classes/core/setup-traits/trait-aksrt-setup-part-2.php,src/AKSRT/Core/SetupPart2.php,0
trait,AKSRT_Balance_Service_Charge,"AKSRT\Credits\BalanceServiceCharge",inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-charge.php,src/AKSRT/Credits/BalanceServiceCharge.php,0
trait,AKSRT_Balance_Service_Points,"AKSRT\Credits\BalanceServicePoints",inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-points.php,src/AKSRT/Credits/BalanceServicePoints.php,0
trait,AKSRT_Balance_Service_Rest,"AKSRT\Credits\BalanceServiceRest",inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-rest.php,src/AKSRT/Credits/BalanceServiceRest.php,0
class,AKSRT_Balance_Service,"AKSRT\Credits\BalanceService",inc/classes/credits/class-aksrt-balance-service.php,src/AKSRT/Credits/BalanceService.php,0
class,AKSRT_Balance,"AKSRT\Credits\Balance",inc/classes/credits/class-aksrt-balance.php,src/AKSRT/Credits/Balance.php,0
class,AKSRT_Credits_Earn,"AKSRT\Credits\Earn",inc/classes/credits/class-aksrt-credits-earn.php,src/AKSRT/Credits/Earn.php,0
class,AKSRT_Credits,"AKSRT\Credits\Credits",inc/classes/credits/class-aksrt-credits.php,src/AKSRT/Credits/Credits.php,0
class,AKSRT_Invite,"AKSRT\Credits\Invite",inc/classes/credits/class-aksrt-invite.php,src/AKSRT/Credits/Invite.php,0
class,AKSRT_Points_Free,"AKSRT\Credits\PointsFree",inc/classes/credits/class-aksrt-points-free.php,src/AKSRT/Credits/PointsFree.php,0
class,AKSRT_Signin,"AKSRT\Credits\Signin",inc/classes/credits/class-aksrt-signin.php,src/AKSRT/Credits/Signin.php,0
class,AKSRT_API_Audit,"AKSRT\Extensions\APIAudit",inc/classes/extensions/class-aksrt-api-audit.php,src/AKSRT/Extensions/APIAudit.php,0
class,AKSRT_Content_Audit,"AKSRT\Extensions\ContentAudit",inc/classes/extensions/class-aksrt-content-audit.php,src/AKSRT/Extensions/ContentAudit.php,0
class,AKSRT_IP_Geo,"AKSRT\Extensions\IPGeo",inc/classes/extensions/class-aksrt-ip-geo.php,src/AKSRT/Extensions/IPGeo.php,0
class,AKSRT_MeiliSearch,"AKSRT\Extensions\MeiliSearch",inc/classes/extensions/class-aksrt-meilisearch.php,src/AKSRT/Extensions/MeiliSearch.php,0
class,AKSRT_Search_Push,"AKSRT\Extensions\SearchPush",inc/classes/extensions/class-aksrt-search-push.php,src/AKSRT/Extensions/SearchPush.php,0
trait,AKSRT_Forum_Board_Service_Part_1,"AKSRT\Forum\BoardServicePart1",inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-1.php,src/AKSRT/Forum/BoardServicePart1.php,0
trait,AKSRT_Forum_Board_Service_Part_2,"AKSRT\Forum\BoardServicePart2",inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-2.php,src/AKSRT/Forum/BoardServicePart2.php,0
trait,AKSRT_Forum_Board_Service_Part_3,"AKSRT\Forum\BoardServicePart3",inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-3.php,src/AKSRT/Forum/BoardServicePart3.php,0
class,AKSRT_Forum_Board_Service,"AKSRT\Forum\BoardService",inc/classes/forum/class-aksrt-forum-board-service.php,src/AKSRT/Forum/BoardService.php,0
class,AKSRT_Forum_Comment_Service,"AKSRT\Forum\CommentService",inc/classes/forum/class-aksrt-forum-comment-service.php,src/AKSRT/Forum/CommentService.php,0
class,AKSRT_Forum_Draft_Service,"AKSRT\Forum\DraftService",inc/classes/forum/class-aksrt-forum-draft-service.php,src/AKSRT/Forum/DraftService.php,0
class,AKSRT_Forum_Moderation_Service,"AKSRT\Forum\ModerationService",inc/classes/forum/class-aksrt-forum-moderation-service.php,src/AKSRT/Forum/ModerationService.php,0
class,AKSRT_Forum_Permission_Service,"AKSRT\Forum\PermissionService",inc/classes/forum/class-aksrt-forum-permission-service.php,src/AKSRT/Forum/PermissionService.php,0
class,AKSRT_Forum_Score_Service,"AKSRT\Forum\ScoreService",inc/classes/forum/class-aksrt-forum-score-service.php,src/AKSRT/Forum/ScoreService.php,0
class,AKSRT_Forum_Topic_Service,"AKSRT\Forum\TopicService",inc/classes/forum/class-aksrt-forum-topic-service.php,src/AKSRT/Forum/TopicService.php,0
class,AKSRT_Forum_View_Builder,"AKSRT\Forum\ViewBuilder",inc/classes/forum/class-aksrt-forum-view-builder.php,src/AKSRT/Forum/ViewBuilder.php,0
class,AKSRT_Forum,"AKSRT\Forum\Forum",inc/classes/forum/class-aksrt-forum.php,src/AKSRT/Forum/Forum.php,0
class,AKSRT_Plate_Admin_List,"AKSRT\Forum\PlateAdminList",inc/classes/forum/class-aksrt-plate-admin-list.php,src/AKSRT/Forum/PlateAdminList.php,0
class,AKSRT_Plate_Follow_Pay,"AKSRT\Forum\PlateFollowPay",inc/classes/forum/class-aksrt-plate-follow-pay.php,src/AKSRT/Forum/PlateFollowPay.php,0
class,AKSRT_Plate_Meta_Box,"AKSRT\Forum\PlateMetaBox",inc/classes/forum/class-aksrt-plate-meta-box.php,src/AKSRT/Forum/PlateMetaBox.php,0
class,AKSRT_Topic_Admin_List,"AKSRT\Forum\TopicAdminList",inc/classes/forum/class-aksrt-topic-admin-list.php,src/AKSRT/Forum/TopicAdminList.php,0
class,AKSRT_Topic_Meta_Box,"AKSRT\Forum\TopicMetaBox",inc/classes/forum/class-aksrt-topic-meta-box.php,src/AKSRT/Forum/TopicMetaBox.php,0
class,AKSRT_Topic_Pay,"AKSRT\Forum\TopicPay",inc/classes/forum/class-aksrt-topic-pay.php,src/AKSRT/Forum/TopicPay.php,0
trait,AKSRT_Forum_Topic_Service_Part_1,"AKSRT\Forum\TopicServicePart1",inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-1.php,src/AKSRT/Forum/TopicServicePart1.php,0
trait,AKSRT_Forum_Topic_Service_Part_2,"AKSRT\Forum\TopicServicePart2",inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-2.php,src/AKSRT/Forum/TopicServicePart2.php,0
trait,AKSRT_Forum_Topic_Service_Part_3,"AKSRT\Forum\TopicServicePart3",inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-3.php,src/AKSRT/Forum/TopicServicePart3.php,0
trait,AKSRT_Forum_Topic_Service_Part_4,"AKSRT\Forum\TopicServicePart4",inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-4.php,src/AKSRT/Forum/TopicServicePart4.php,0
trait,AKSRT_Forum_View_Builder_Part_1,"AKSRT\Forum\ViewBuilderPart1",inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-1.php,src/AKSRT/Forum/ViewBuilderPart1.php,0
trait,AKSRT_Forum_View_Builder_Part_2,"AKSRT\Forum\ViewBuilderPart2",inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-2.php,src/AKSRT/Forum/ViewBuilderPart2.php,0
class,AKSRT_Custom_Code_Renderer,"AKSRT\Frontend\CustomCodeRenderer",inc/classes/frontend/class-aksrt-custom-code-renderer.php,src/AKSRT/Frontend/CustomCodeRenderer.php,0
class,AKSRT_Inline_Style_Builder,"AKSRT\Frontend\InlineStyleBuilder",inc/classes/frontend/class-aksrt-inline-style-builder.php,src/AKSRT/Frontend/InlineStyleBuilder.php,0
class,AKSRT_Loading_Overlay_Renderer,"AKSRT\Frontend\LoadingOverlayRenderer",inc/classes/frontend/class-aksrt-loading-overlay-renderer.php,src/AKSRT/Frontend/LoadingOverlayRenderer.php,0
class,AKSRT_Message,"AKSRT\Messages\Message",inc/classes/messages/class-aksrt-message.php,src/AKSRT/Messages/Message.php,0
class,AKSRT_Private_Message,"AKSRT\Messages\PrivateMessage",inc/classes/messages/class-aksrt-private-message.php,src/AKSRT/Messages/PrivateMessage.php,0
class,AKSRT_Report_Center,"AKSRT\Messages\ReportCenter",inc/classes/messages/class-aksrt-report-center.php,src/AKSRT/Messages/ReportCenter.php,0
class,AKSRT_Site_Notice,"AKSRT\Messages\SiteNotice",inc/classes/messages/class-aksrt-site-notice.php,src/AKSRT/Messages/SiteNotice.php,0
class,AKSRT_After_Sale,"AKSRT\Payment\AfterSale",inc/classes/payment/class-aksrt-after-sale.php,src/AKSRT/Payment/AfterSale.php,0
class,AKSRT_Charge_Card,"AKSRT\Payment\ChargeCard",inc/classes/payment/class-aksrt-charge-card.php,src/AKSRT/Payment/ChargeCard.php,0
class,AKSRT_Coupon,"AKSRT\Payment\Coupon",inc/classes/payment/class-aksrt-coupon.php,src/AKSRT/Payment/Coupon.php,0
class,AKSRT_Discount,"AKSRT\Payment\Discount",inc/classes/payment/class-aksrt-discount.php,src/AKSRT/Payment/Discount.php,0
class,AKSRT_Order_Repository,"AKSRT\Payment\OrderRepository",inc/classes/payment/class-aksrt-order-repository.php,src/AKSRT/Payment/OrderRepository.php,0
class,AKSRT_Order,"AKSRT\Payment\Order",inc/classes/payment/class-aksrt-order.php,src/AKSRT/Payment/Order.php,0
interface,AKSRT_Payment_Gateway_Interface,"AKSRT\Payment\GatewayInterface",inc/classes/payment/class-aksrt-payment-gateway.php,src/AKSRT/Payment/GatewayInterface.php,1
class,AKSRT_Payment_Gateway,"AKSRT\Payment\Gateway",inc/classes/payment/class-aksrt-payment-gateway.php,src/AKSRT/Payment/Gateway.php,1
class,AKSRT_Balance_Gateway,"AKSRT\Payment\BalanceGateway",inc/classes/payment/class-aksrt-payment-gateway.php,src/AKSRT/Payment/BalanceGateway.php,1
class,AKSRT_Rebate,"AKSRT\Payment\Rebate",inc/classes/payment/class-aksrt-rebate.php,src/AKSRT/Payment/Rebate.php,0
class,AKSRT_Revenue,"AKSRT\Payment\Revenue",inc/classes/payment/class-aksrt-revenue.php,src/AKSRT/Payment/Revenue.php,0
class,AKSRT_Shipping,"AKSRT\Payment\Shipping",inc/classes/payment/class-aksrt-shipping.php,src/AKSRT/Payment/Shipping.php,0
class,AKSRT_WeChat_Notify,"AKSRT\Payment\WeChatNotify",inc/classes/payment/class-aksrt-wechat-notify.php,src/AKSRT/Payment/WeChatNotify.php,0
class,AKSRT_Withdrawal,"AKSRT\Payment\Withdrawal",inc/classes/payment/class-aksrt-withdrawal.php,src/AKSRT/Payment/Withdrawal.php,0
class,AKSRT_Alipay_Gateway,"AKSRT\Payment\Gateways\AlipayGateway",inc/classes/payment/gateways/class-aksrt-alipay-gateway.php,src/AKSRT/Payment/Gateways/AlipayGateway.php,0
class,AKSRT_PayPal_Gateway,"AKSRT\Payment\Gateways\PayPalGateway",inc/classes/payment/gateways/class-aksrt-paypal-gateway.php,src/AKSRT/Payment/Gateways/PayPalGateway.php,0
class,AKSRT_Stripe_Gateway,"AKSRT\Payment\Gateways\StripeGateway",inc/classes/payment/gateways/class-aksrt-stripe-gateway.php,src/AKSRT/Payment/Gateways/StripeGateway.php,0
class,AKSRT_WechatPay_Gateway,"AKSRT\Payment\Gateways\WechatPayGateway",inc/classes/payment/gateways/class-aksrt-wechatpay-gateway.php,src/AKSRT/Payment/Gateways/WechatPayGateway.php,0
trait,AKSRT_Order_Repository_Admin,"AKSRT\Payment\OrderRepositoryAdmin",inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-admin.php,src/AKSRT/Payment/OrderRepositoryAdmin.php,0
trait,AKSRT_Order_Repository_Core,"AKSRT\Payment\OrderRepositoryCore",inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-core.php,src/AKSRT/Payment/OrderRepositoryCore.php,0
trait,AKSRT_Shipping_Part_1,"AKSRT\Payment\ShippingPart1",inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-1.php,src/AKSRT/Payment/ShippingPart1.php,0
trait,AKSRT_Shipping_Part_2,"AKSRT\Payment\ShippingPart2",inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-2.php,src/AKSRT/Payment/ShippingPart2.php,0
class,AKSRT_Settings_Capabilities,"AKSRT\Settings\Capabilities",inc/classes/settings/class-aksrt-settings-capabilities.php,src/AKSRT/Settings/Capabilities.php,0
trait,AKSRT_Settings_Category_Integration_Groups,"AKSRT\Settings\CategoryIntegrationGroups",inc/classes/settings/class-aksrt-settings-category-integration-groups.php,src/AKSRT/Settings/CategoryIntegrationGroups.php,0
class,AKSRT_Settings_Category_Runtime,"AKSRT\Settings\CategoryRuntime",inc/classes/settings/class-aksrt-settings-category-runtime.php,src/AKSRT/Settings/CategoryRuntime.php,0
trait,AKSRT_Settings_Credits_Payment_Groups,"AKSRT\Settings\CreditsPaymentGroups",inc/classes/settings/class-aksrt-settings-credits-payment-groups.php,src/AKSRT/Settings/CreditsPaymentGroups.php,0
class,AKSRT_Settings_Credits_Runtime,"AKSRT\Settings\CreditsRuntime",inc/classes/settings/class-aksrt-settings-credits-runtime.php,src/AKSRT/Settings/CreditsRuntime.php,0
trait,AKSRT_Settings_Display_Page_Groups,"AKSRT\Settings\DisplayPageGroups",inc/classes/settings/class-aksrt-settings-display-page-groups.php,src/AKSRT/Settings/DisplayPageGroups.php,0
class,AKSRT_Settings_Display_Runtime,"AKSRT\Settings\DisplayRuntime",inc/classes/settings/class-aksrt-settings-display-runtime.php,src/AKSRT/Settings/DisplayRuntime.php,0
trait,AKSRT_Settings_Domain_Groups,"AKSRT\Settings\DomainGroups",inc/classes/settings/class-aksrt-settings-domain-groups.php,src/AKSRT/Settings/DomainGroups.php,0
class,AKSRT_Settings_Extension_Runtime,"AKSRT\Settings\ExtensionRuntime",inc/classes/settings/class-aksrt-settings-extension-runtime.php,src/AKSRT/Settings/ExtensionRuntime.php,0
class,AKSRT_Settings_Forum_Shop,"AKSRT\Settings\ForumShop",inc/classes/settings/class-aksrt-settings-forum-shop.php,src/AKSRT/Settings/ForumShop.php,0
class,AKSRT_Settings_Home_Cms,"AKSRT\Settings\HomeCms",inc/classes/settings/class-aksrt-settings-home-cms.php,src/AKSRT/Settings/HomeCms.php,0
class,AKSRT_Settings_Integration,"AKSRT\Settings\Integration",inc/classes/settings/class-aksrt-settings-integration.php,src/AKSRT/Settings/Integration.php,0
class,AKSRT_Settings_Mail,"AKSRT\Settings\Mail",inc/classes/settings/class-aksrt-settings-mail.php,src/AKSRT/Settings/Mail.php,0
class,AKSRT_Settings_Payment_Runtime,"AKSRT\Settings\PaymentRuntime",inc/classes/settings/class-aksrt-settings-payment-runtime.php,src/AKSRT/Settings/PaymentRuntime.php,0
class,AKSRT_Settings_Post_Display,"AKSRT\Settings\PostDisplay",inc/classes/settings/class-aksrt-settings-post-display.php,src/AKSRT/Settings/PostDisplay.php,0
class,AKSRT_Settings_Theme_Search,"AKSRT\Settings\ThemeSearch",inc/classes/settings/class-aksrt-settings-theme-search.php,src/AKSRT/Settings/ThemeSearch.php,0
class,AKSRT_Settings_User_Runtime,"AKSRT\Settings\UserRuntime",inc/classes/settings/class-aksrt-settings-user-runtime.php,src/AKSRT/Settings/UserRuntime.php,0
class,AKSRT_Settings,"AKSRT\Settings\Settings",inc/classes/settings/class-aksrt-settings.php,src/AKSRT/Settings/Settings.php,0
trait,AKSRT_Settings_Auth_Reader,"AKSRT\Settings\AuthReader",inc/classes/settings/trait-aksrt-settings-auth-reader.php,src/AKSRT/Settings/AuthReader.php,0
trait,AKSRT_Settings_Facade_Bulk,"AKSRT\Settings\FacadeBulk",inc/classes/settings/trait-aksrt-settings-facade-bulk.php,src/AKSRT/Settings/FacadeBulk.php,0
trait,AKSRT_Settings_Homepage_Reader,"AKSRT\Settings\HomepageReader",inc/classes/settings/trait-aksrt-settings-homepage-reader.php,src/AKSRT/Settings/HomepageReader.php,0
class,AKSRT_Product_Meta_Box,"AKSRT\Shop\ProductMetaBox",inc/classes/shop/class-aksrt-product-meta-box.php,src/AKSRT/Shop/ProductMetaBox.php,0
class,AKSRT_Product_Review,"AKSRT\Shop\ProductReview",inc/classes/shop/class-aksrt-product-review.php,src/AKSRT/Shop/ProductReview.php,0
class,AKSRT_Product_Variants_Meta_Box,"AKSRT\Shop\ProductVariantsMetaBox",inc/classes/shop/class-aksrt-product-variants-meta-box.php,src/AKSRT/Shop/ProductVariantsMetaBox.php,0
class,AKSRT_Shop_Address_Service,"AKSRT\Shop\AddressService",inc/classes/shop/class-aksrt-shop-address-service.php,src/AKSRT/Shop/AddressService.php,0
class,AKSRT_Shop_Cart_Service,"AKSRT\Shop\CartService",inc/classes/shop/class-aksrt-shop-cart-service.php,src/AKSRT/Shop/CartService.php,0
class,AKSRT_Shop_Checkout_Service,"AKSRT\Shop\CheckoutService",inc/classes/shop/class-aksrt-shop-checkout-service.php,src/AKSRT/Shop/CheckoutService.php,0
class,AKSRT_Shop_Product_Service,"AKSRT\Shop\ProductService",inc/classes/shop/class-aksrt-shop-product-service.php,src/AKSRT/Shop/ProductService.php,0
class,AKSRT_Shop_Term_Meta,"AKSRT\Shop\TermMeta",inc/classes/shop/class-aksrt-shop-term-meta.php,src/AKSRT/Shop/TermMeta.php,0
class,AKSRT_Shop,"AKSRT\Shop\Shop",inc/classes/shop/class-aksrt-shop.php,src/AKSRT/Shop/Shop.php,0
trait,AKSRT_Shop_Part_1,"AKSRT\Shop\Part1",inc/classes/shop/shop-traits/trait-aksrt-shop-part-1.php,src/AKSRT/Shop/Part1.php,0
trait,AKSRT_Shop_Part_2,"AKSRT\Shop\Part2",inc/classes/shop/shop-traits/trait-aksrt-shop-part-2.php,src/AKSRT/Shop/Part2.php,0
trait,AKSRT_Shop_Part_3,"AKSRT\Shop\Part3",inc/classes/shop/shop-traits/trait-aksrt-shop-part-3.php,src/AKSRT/Shop/Part3.php,0
class,AKSRT_SMS_Provider_Aliyun,"AKSRT\Sms\SMSProviderAliyun",inc/classes/sms/class-aksrt-sms-provider-aliyun.php,src/AKSRT/Sms/SMSProviderAliyun.php,0
class,AKSRT_SMS_Provider_Custom,"AKSRT\Sms\SMSProviderCustom",inc/classes/sms/class-aksrt-sms-provider-custom.php,src/AKSRT/Sms/SMSProviderCustom.php,0
class,AKSRT_SMS_Provider_Factory,"AKSRT\Sms\SMSProviderFactory",inc/classes/sms/class-aksrt-sms-provider-factory.php,src/AKSRT/Sms/SMSProviderFactory.php,0
class,AKSRT_SMS_Provider_Huawei,"AKSRT\Sms\SMSProviderHuawei",inc/classes/sms/class-aksrt-sms-provider-huawei.php,src/AKSRT/Sms/SMSProviderHuawei.php,0
class,AKSRT_SMS_Provider_Tencent,"AKSRT\Sms\SMSProviderTencent",inc/classes/sms/class-aksrt-sms-provider-tencent.php,src/AKSRT/Sms/SMSProviderTencent.php,0
interface,AKSRT_SMS_Provider,"AKSRT\Sms\ProviderInterface",inc/classes/sms/class-aksrt-sms-provider.php,src/AKSRT/Sms/ProviderInterface.php,0
class,AKSRT_SMS_Signature_Helper,"AKSRT\Sms\SMSSignatureHelper",inc/classes/sms/class-aksrt-sms-signature-helper.php,src/AKSRT/Sms/SMSSignatureHelper.php,0
class,AKSRT_SMS,"AKSRT\Sms\SMS",inc/classes/sms/class-aksrt-sms.php,src/AKSRT/Sms/SMS.php,0
class,AKSRT_Follow,"AKSRT\User\Follow",inc/classes/user/class-aksrt-follow.php,src/AKSRT/User/Follow.php,0
class,AKSRT_User_Badges_Admin,"AKSRT\User\BadgesAdmin",inc/classes/user/class-aksrt-user-badges-admin.php,src/AKSRT/User/BadgesAdmin.php,0
class,AKSRT_User_Badges,"AKSRT\User\Badges",inc/classes/user/class-aksrt-user-badges.php,src/AKSRT/User/Badges.php,0
class,AKSRT_User_Balance_Admin,"AKSRT\User\BalanceAdmin",inc/classes/user/class-aksrt-user-balance-admin.php,src/AKSRT/User/BalanceAdmin.php,0
class,AKSRT_User_Center,"AKSRT\User\Center",inc/classes/user/class-aksrt-user-center.php,src/AKSRT/User/Center.php,0
class,AKSRT_User_Credits_Admin,"AKSRT\User\CreditsAdmin",inc/classes/user/class-aksrt-user-credits-admin.php,src/AKSRT/User/CreditsAdmin.php,0
class,AKSRT_User_Home,"AKSRT\User\Home",inc/classes/user/class-aksrt-user-home.php,src/AKSRT/User/Home.php,0
class,AKSRT_User_Level,"AKSRT\User\Level",inc/classes/user/class-aksrt-user-level.php,src/AKSRT/User/Level.php,0
class,AKSRT_User_Metrics,"AKSRT\User\Metrics",inc/classes/user/class-aksrt-user-metrics.php,src/AKSRT/User/Metrics.php,0
class,AKSRT_User_Restriction,"AKSRT\User\Restriction",inc/classes/user/class-aksrt-user-restriction.php,src/AKSRT/User/Restriction.php,0
class,AKSRT_Widget_Announcement,"AKSRT\Widgets\WidgetAnnouncement",inc/classes/widgets/class-aksrt-announcement-widget.php,src/AKSRT/Widgets/WidgetAnnouncement.php,0
class,AKSRT_Widget_Cover_Cards,"AKSRT\Widgets\WidgetCoverCards",inc/classes/widgets/class-aksrt-cover-cards-widget.php,src/AKSRT/Widgets/WidgetCoverCards.php,0
class,AKSRT_Widget_Forum_Hot_Topics,"AKSRT\Widgets\WidgetForumHotTopics",inc/classes/widgets/class-aksrt-forum-widgets.php,src/AKSRT/Widgets/WidgetForumHotTopics.php,1
class,AKSRT_Widget_Forum_Recent_Topics,"AKSRT\Widgets\WidgetForumRecentTopics",inc/classes/widgets/class-aksrt-forum-widgets.php,src/AKSRT/Widgets/WidgetForumRecentTopics.php,1
class,AKSRT_Widget_Forum_Board_List,"AKSRT\Widgets\WidgetForumBoardList",inc/classes/widgets/class-aksrt-forum-widgets.php,src/AKSRT/Widgets/WidgetForumBoardList.php,1
class,AKSRT_Category_Block_Widget,"AKSRT\Widgets\CategoryBlockWidget",inc/classes/widgets/class-aksrt-home-widgets.php,src/AKSRT/Widgets/CategoryBlockWidget.php,1
class,AKSRT_Category_Tabs_Widget,"AKSRT\Widgets\CategoryTabsWidget",inc/classes/widgets/class-aksrt-home-widgets.php,src/AKSRT/Widgets/CategoryTabsWidget.php,1
class,AKSRT_Category_Recommend_Widget,"AKSRT\Widgets\CategoryRecommendWidget",inc/classes/widgets/class-aksrt-home-widgets.php,src/AKSRT/Widgets/CategoryRecommendWidget.php,1
class,AKSRT_Widget_Lang_Switch,"AKSRT\Widgets\WidgetLangSwitch",inc/classes/widgets/class-aksrt-lang-switch-widget.php,src/AKSRT/Widgets/WidgetLangSwitch.php,0
class,AKSRT_Widget_Product_List,"AKSRT\Widgets\WidgetProductList",inc/classes/widgets/class-aksrt-shop-widgets.php,src/AKSRT/Widgets/WidgetProductList.php,1
class,AKSRT_Widget_Product_Oneline,"AKSRT\Widgets\WidgetProductOneline",inc/classes/widgets/class-aksrt-shop-widgets.php,src/AKSRT/Widgets/WidgetProductOneline.php,1
class,AKSRT_Widget_Product_Tab,"AKSRT\Widgets\WidgetProductTab",inc/classes/widgets/class-aksrt-shop-widgets.php,src/AKSRT/Widgets/WidgetProductTab.php,1
class,AKSRT_Widget_User_Card,"AKSRT\Widgets\WidgetUserCard",inc/classes/widgets/class-aksrt-user-card-widget.php,src/AKSRT/Widgets/WidgetUserCard.php,0
class,AKSRT_Widget_User_Ranking,"AKSRT\Widgets\WidgetUserRanking",inc/classes/widgets/class-aksrt-user-ranking-widget.php,src/AKSRT/Widgets/WidgetUserRanking.php,0
class,AKSRT_Widget_Video_Player,"AKSRT\Widgets\WidgetVideoPlayer",inc/classes/widgets/class-aksrt-video-player-widget.php,src/AKSRT/Widgets/WidgetVideoPlayer.php,0
class,AKSRT_Search_Widget,"AKSRT\Widgets\SearchWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/SearchWidget.php,1
class,AKSRT_Notice_Widget,"AKSRT\Widgets\NoticeWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/NoticeWidget.php,1
class,AKSRT_Recent_Comments_Widget,"AKSRT\Widgets\RecentCommentsWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/RecentCommentsWidget.php,1
class,AKSRT_Friend_Links_Widget,"AKSRT\Widgets\FriendLinksWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/FriendLinksWidget.php,1
class,AKSRT_Icon_Cards_Widget,"AKSRT\Widgets\IconCardsWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/IconCardsWidget.php,1
class,AKSRT_Buttons_Widget,"AKSRT\Widgets\ButtonsWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/ButtonsWidget.php,1
class,AKSRT_Custom_HTML_Gap_Widget,"AKSRT\Widgets\CustomHtmlGapWidget",inc/classes/widgets/class-aksrt-widgets-batch1.php,src/AKSRT/Widgets/CustomHtmlGapWidget.php,1
class,AKSRT_Hot_Posts_Widget,"AKSRT\Widgets\HotPostsWidget",inc/classes/widgets/class-aksrt-widgets-new.php,src/AKSRT/Widgets/HotPostsWidget.php,1
class,AKSRT_Tab_Posts_Widget,"AKSRT\Widgets\TabPostsWidget",inc/classes/widgets/class-aksrt-widgets-new.php,src/AKSRT/Widgets/TabPostsWidget.php,1
class,AKSRT_About_Widget,"AKSRT\Widgets\AboutWidget",inc/classes/widgets/class-aksrt-widgets-original.php,src/AKSRT/Widgets/AboutWidget.php,1
class,AKSRT_Categories_Widget,"AKSRT\Widgets\CategoriesWidget",inc/classes/widgets/class-aksrt-widgets-original.php,src/AKSRT/Widgets/CategoriesWidget.php,1
class,AKSRT_Tag_Cloud_Widget,"AKSRT\Widgets\TagCloudWidget",inc/classes/widgets/class-aksrt-widgets-original.php,src/AKSRT/Widgets/TagCloudWidget.php,1
class,AKSRT_Widget_Yiyan,"AKSRT\Widgets\WidgetYiyan",inc/classes/widgets/class-aksrt-yiyan-widget.php,src/AKSRT/Widgets/WidgetYiyan.php,0
class,AKSRT_Nav_Walker,"AKSRT\Frontend\NavWalker",inc/helpers/class-aksrt-nav-walker.php,src/AKSRT/Frontend/NavWalker.php,0
class,AKSRT_Shortcodes,"AKSRT\Core\Shortcodes",inc/helpers/aksrt-shortcodes.php,src/AKSRT/Core/Shortcodes.php,0
class,AKSRT_Domain_Model,"AKSRT\Core\DomainModel",inc/helpers/aksrt-domain-model.php,src/AKSRT/Core/DomainModel.php,0
1 kind old new_fqcn old_path new_path multi_source
2 class AKSRT_Admin_AI_Controller AKSRT\Admin\AIController inc/classes/admin/class-aksrt-admin-ai-controller.php src/AKSRT/Admin/AIController.php 0
3 class AKSRT_Admin_Comment_Controller AKSRT\Admin\CommentController inc/classes/admin/class-aksrt-admin-comment-controller.php src/AKSRT/Admin/CommentController.php 0
4 class AKSRT_Admin_Controller_Base AKSRT\Admin\ControllerBase inc/classes/admin/class-aksrt-admin-controller-base.php src/AKSRT/Admin/ControllerBase.php 0
5 class AKSRT_Admin_Extension_Controller AKSRT\Admin\ExtensionController inc/classes/admin/class-aksrt-admin-extension-controller.php src/AKSRT/Admin/ExtensionController.php 0
6 class AKSRT_Admin_Forum_Controller AKSRT\Admin\ForumController inc/classes/admin/class-aksrt-admin-forum-controller.php src/AKSRT/Admin/ForumController.php 0
7 class AKSRT_Admin_Global_Controller AKSRT\Admin\GlobalController inc/classes/admin/class-aksrt-admin-global-controller.php src/AKSRT/Admin/GlobalController.php 0
8 class AKSRT_Admin_Import_Export_Controller AKSRT\Admin\ImportExportController inc/classes/admin/class-aksrt-admin-import-export-controller.php src/AKSRT/Admin/ImportExportController.php 0
9 class AKSRT_Admin_Message_Controller AKSRT\Admin\MessageController inc/classes/admin/class-aksrt-admin-message-controller.php src/AKSRT/Admin/MessageController.php 0
10 class AKSRT_Admin_Page_Display_Controller AKSRT\Admin\PageDisplayController inc/classes/admin/class-aksrt-admin-page-display-controller.php src/AKSRT/Admin/PageDisplayController.php 0
11 class AKSRT_Admin_Payment_Controller AKSRT\Admin\PaymentController inc/classes/admin/class-aksrt-admin-payment-controller.php src/AKSRT/Admin/PaymentController.php 0
12 class AKSRT_Admin_Permissions_Controller AKSRT\Admin\PermissionsController inc/classes/admin/class-aksrt-admin-permissions-controller.php src/AKSRT/Admin/PermissionsController.php 0
13 class AKSRT_Admin_Post_List_Controller AKSRT\Admin\PostListController inc/classes/admin/class-aksrt-admin-post-list-controller.php src/AKSRT/Admin/PostListController.php 0
14 class AKSRT_Admin_Schema_Provider AKSRT\Admin\SchemaProvider inc/classes/admin/class-aksrt-admin-schema-provider.php src/AKSRT/Admin/SchemaProvider.php 0
15 trait AKSRT_Admin_Shop_Controller_Coupon_Gateway_Operations AKSRT\Admin\ShopControllerCouponGatewayOperations inc/classes/admin/class-aksrt-admin-shop-controller-coupon-gateway-operations.php src/AKSRT/Admin/ShopControllerCouponGatewayOperations.php 0
16 trait AKSRT_Admin_Shop_Controller_Frontend_Flow_Operations AKSRT\Admin\ShopControllerFrontendFlowOperations inc/classes/admin/class-aksrt-admin-shop-controller-frontend-flow-operations.php src/AKSRT/Admin/ShopControllerFrontendFlowOperations.php 0
17 trait AKSRT_Admin_Shop_Controller_Fulfillment_Operations AKSRT\Admin\ShopControllerFulfillmentOperations inc/classes/admin/class-aksrt-admin-shop-controller-fulfillment-operations.php src/AKSRT/Admin/ShopControllerFulfillmentOperations.php 0
18 trait AKSRT_Admin_Shop_Controller_Order_Operations AKSRT\Admin\ShopControllerOrderOperations inc/classes/admin/class-aksrt-admin-shop-controller-order-operations.php src/AKSRT/Admin/ShopControllerOrderOperations.php 0
19 trait AKSRT_Admin_Shop_Controller_Product_Admin_Columns AKSRT\Admin\ShopControllerProductAdminColumns inc/classes/admin/class-aksrt-admin-shop-controller-product-admin-columns.php src/AKSRT/Admin/ShopControllerProductAdminColumns.php 0
20 trait AKSRT_Admin_Shop_Controller_Product_Operations AKSRT\Admin\ShopControllerProductOperations inc/classes/admin/class-aksrt-admin-shop-controller-product-operations.php src/AKSRT/Admin/ShopControllerProductOperations.php 0
21 trait AKSRT_Admin_Shop_Controller_Variant_Export_Operations AKSRT\Admin\ShopControllerVariantExportOperations inc/classes/admin/class-aksrt-admin-shop-controller-variant-export-operations.php src/AKSRT/Admin/ShopControllerVariantExportOperations.php 0
22 class AKSRT_Admin_Shop_Controller AKSRT\Admin\ShopController inc/classes/admin/class-aksrt-admin-shop-controller.php src/AKSRT/Admin/ShopController.php 0
23 class AKSRT_Admin_Tools_Controller AKSRT\Admin\ToolsController inc/classes/admin/class-aksrt-admin-tools-controller.php src/AKSRT/Admin/ToolsController.php 0
24 trait AKSRT_Admin_User_Controller_Auth_Phone_Operations AKSRT\Admin\UserControllerAuthPhoneOperations inc/classes/admin/class-aksrt-admin-user-controller-auth-phone-operations.php src/AKSRT/Admin/UserControllerAuthPhoneOperations.php 0
25 trait AKSRT_Admin_User_Controller_Follow_Operations AKSRT\Admin\UserControllerFollowOperations inc/classes/admin/class-aksrt-admin-user-controller-follow-operations.php src/AKSRT/Admin/UserControllerFollowOperations.php 0
26 trait AKSRT_Admin_User_Controller_Invite_Operations AKSRT\Admin\UserControllerInviteOperations inc/classes/admin/class-aksrt-admin-user-controller-invite-operations.php src/AKSRT/Admin/UserControllerInviteOperations.php 0
27 trait AKSRT_Admin_User_Controller_Report_Operations AKSRT\Admin\UserControllerReportOperations inc/classes/admin/class-aksrt-admin-user-controller-report-operations.php src/AKSRT/Admin/UserControllerReportOperations.php 0
28 trait AKSRT_Admin_User_Controller_Restriction_Operations AKSRT\Admin\UserControllerRestrictionOperations inc/classes/admin/class-aksrt-admin-user-controller-restriction-operations.php src/AKSRT/Admin/UserControllerRestrictionOperations.php 0
29 trait AKSRT_Admin_User_Controller_Verify_Integrations AKSRT\Admin\UserControllerVerifyIntegrations inc/classes/admin/class-aksrt-admin-user-controller-verify-integrations.php src/AKSRT/Admin/UserControllerVerifyIntegrations.php 0
30 class AKSRT_Admin_User_Controller AKSRT\Admin\UserController inc/classes/admin/class-aksrt-admin-user-controller.php src/AKSRT/Admin/UserController.php 0
31 class AKSRT_Admin AKSRT\Admin\Admin inc/classes/admin/class-aksrt-admin.php src/AKSRT/Admin/Admin.php 0
32 trait AKSRT_Admin_Forum_Controller_Part_1 AKSRT\Admin\ForumControllerPart1 inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-1.php src/AKSRT/Admin/ForumControllerPart1.php 0
33 trait AKSRT_Admin_Forum_Controller_Part_2 AKSRT\Admin\ForumControllerPart2 inc/classes/admin/forum-ctrl-traits/trait-aksrt-admin-forum-controller-part-2.php src/AKSRT/Admin/ForumControllerPart2.php 0
34 trait AKSRT_Admin_Global_Controller_Part_1 AKSRT\Admin\GlobalControllerPart1 inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-1.php src/AKSRT/Admin/GlobalControllerPart1.php 0
35 trait AKSRT_Admin_Global_Controller_Part_2 AKSRT\Admin\GlobalControllerPart2 inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-global-controller-part-2.php src/AKSRT/Admin/GlobalControllerPart2.php 0
36 trait AKSRT_Admin_Homepage_Settings_Rest AKSRT\Admin\HomepageSettingsRest inc/classes/admin/global-ctrl-traits/trait-aksrt-admin-homepage-settings-rest.php src/AKSRT/Admin/HomepageSettingsRest.php 0
37 trait AKSRT_Admin_Import_Export_Controller_Part_1 AKSRT\Admin\ImportExportControllerPart1 inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-1.php src/AKSRT/Admin/ImportExportControllerPart1.php 0
38 trait AKSRT_Admin_Import_Export_Controller_Part_2 AKSRT\Admin\ImportExportControllerPart2 inc/classes/admin/import-export-traits/trait-aksrt-admin-import-export-controller-part-2.php src/AKSRT/Admin/ImportExportControllerPart2.php 0
39 class AKSRT_Admin_Pay_After_Sale AKSRT\Admin\Native\PayAfterSale inc/classes/admin/native/class-aksrt-admin-pay-after-sale.php src/AKSRT/Admin/Native/PayAfterSale.php 0
40 class AKSRT_Admin_Pay_Charge_Cards AKSRT\Admin\Native\PayChargeCards inc/classes/admin/native/class-aksrt-admin-pay-charge-cards.php src/AKSRT/Admin/Native/PayChargeCards.php 0
41 class AKSRT_Admin_Pay_Coupons AKSRT\Admin\Native\PayCoupons inc/classes/admin/native/class-aksrt-admin-pay-coupons.php src/AKSRT/Admin/Native/PayCoupons.php 0
42 class AKSRT_Admin_Pay_Download_Logs AKSRT\Admin\Native\PayDownloadLogs inc/classes/admin/native/class-aksrt-admin-pay-download-logs.php src/AKSRT/Admin/Native/PayDownloadLogs.php 0
43 class AKSRT_Admin_Pay_Income AKSRT\Admin\Native\PayIncome inc/classes/admin/native/class-aksrt-admin-pay-income.php src/AKSRT/Admin/Native/PayIncome.php 0
44 class AKSRT_Admin_Pay_Menus AKSRT\Admin\Native\PayMenus inc/classes/admin/native/class-aksrt-admin-pay-menus.php src/AKSRT/Admin/Native/PayMenus.php 0
45 class AKSRT_Admin_Pay_Orders AKSRT\Admin\Native\PayOrders inc/classes/admin/native/class-aksrt-admin-pay-orders.php src/AKSRT/Admin/Native/PayOrders.php 0
46 class AKSRT_Admin_Pay_Products AKSRT\Admin\Native\PayProducts inc/classes/admin/native/class-aksrt-admin-pay-products.php src/AKSRT/Admin/Native/PayProducts.php 0
47 class AKSRT_Admin_Pay_Rebate AKSRT\Admin\Native\PayRebate inc/classes/admin/native/class-aksrt-admin-pay-rebate.php src/AKSRT/Admin/Native/PayRebate.php 0
48 class AKSRT_Admin_Pay_Shipping AKSRT\Admin\Native\PayShipping inc/classes/admin/native/class-aksrt-admin-pay-shipping.php src/AKSRT/Admin/Native/PayShipping.php 0
49 class AKSRT_Admin_Pay_Withdrawals AKSRT\Admin\Native\PayWithdrawals inc/classes/admin/native/class-aksrt-admin-pay-withdrawals.php src/AKSRT/Admin/Native/PayWithdrawals.php 0
50 class AKSRT_Admin_Users_Menus AKSRT\Admin\Native\UsersMenus inc/classes/admin/native/class-aksrt-admin-users-menus.php src/AKSRT/Admin/Native/UsersMenus.php 0
51 class AKSRT_Admin_Schema_Extensions_Audit AKSRT\Admin\Schema\SchemaExtensionsAudit inc/classes/admin/schema/class-aksrt-admin-schema-extensions-audit.php src/AKSRT/Admin/Schema/SchemaExtensionsAudit.php 0
52 class AKSRT_Admin_Schema_Extensions_Docs_Mode AKSRT\Admin\Schema\SchemaExtensionsDocsMode inc/classes/admin/schema/class-aksrt-admin-schema-extensions-docs-mode.php src/AKSRT/Admin/Schema/SchemaExtensionsDocsMode.php 0
53 class AKSRT_Admin_Schema_Extensions_IP AKSRT\Admin\Schema\SchemaExtensionsIP inc/classes/admin/schema/class-aksrt-admin-schema-extensions-ip.php src/AKSRT/Admin/Schema/SchemaExtensionsIP.php 0
54 class AKSRT_Admin_Schema_Extensions_Push AKSRT\Admin\Schema\SchemaExtensionsPush inc/classes/admin/schema/class-aksrt-admin-schema-extensions-push.php src/AKSRT/Admin/Schema/SchemaExtensionsPush.php 0
55 class AKSRT_Admin_Schema_Extensions_Security AKSRT\Admin\Schema\SchemaExtensionsSecurity inc/classes/admin/schema/class-aksrt-admin-schema-extensions-security.php src/AKSRT/Admin/Schema/SchemaExtensionsSecurity.php 0
56 class AKSRT_Admin_Schema_Extensions AKSRT\Admin\Schema\SchemaExtensions inc/classes/admin/schema/class-aksrt-admin-schema-extensions.php src/AKSRT/Admin/Schema/SchemaExtensions.php 0
57 class AKSRT_Admin_Schema_Forum_Basic AKSRT\Admin\Schema\SchemaForumBasic inc/classes/admin/schema/class-aksrt-admin-schema-forum-basic.php src/AKSRT/Admin/Schema/SchemaForumBasic.php 0
58 class AKSRT_Admin_Schema_Forum_Board_Page AKSRT\Admin\Schema\SchemaForumBoardPage inc/classes/admin/schema/class-aksrt-admin-schema-forum-board-page.php src/AKSRT/Admin/Schema/SchemaForumBoardPage.php 0
59 class AKSRT_Admin_Schema_Forum_Credits AKSRT\Admin\Schema\SchemaForumCredits inc/classes/admin/schema/class-aksrt-admin-schema-forum-credits.php src/AKSRT/Admin/Schema/SchemaForumCredits.php 0
60 class AKSRT_Admin_Schema_Forum_Homepage AKSRT\Admin\Schema\SchemaForumHomepage inc/classes/admin/schema/class-aksrt-admin-schema-forum-homepage.php src/AKSRT/Admin/Schema/SchemaForumHomepage.php 0
61 class AKSRT_Admin_Schema_Forum_Names AKSRT\Admin\Schema\SchemaForumNames inc/classes/admin/schema/class-aksrt-admin-schema-forum-names.php src/AKSRT/Admin/Schema/SchemaForumNames.php 0
62 class AKSRT_Admin_Schema_Forum_Other AKSRT\Admin\Schema\SchemaForumOther inc/classes/admin/schema/class-aksrt-admin-schema-forum-other.php src/AKSRT/Admin/Schema/SchemaForumOther.php 0
63 class AKSRT_Admin_Schema_Forum_Permissions AKSRT\Admin\Schema\SchemaForumPermissions inc/classes/admin/schema/class-aksrt-admin-schema-forum-permissions.php src/AKSRT/Admin/Schema/SchemaForumPermissions.php 0
64 class AKSRT_Admin_Schema_Forum_Post_Page AKSRT\Admin\Schema\SchemaForumPostPage inc/classes/admin/schema/class-aksrt-admin-schema-forum-post-page.php src/AKSRT/Admin/Schema/SchemaForumPostPage.php 0
65 class AKSRT_Admin_Schema_Forum_Reply AKSRT\Admin\Schema\SchemaForumReply inc/classes/admin/schema/class-aksrt-admin-schema-forum-reply.php src/AKSRT/Admin/Schema/SchemaForumReply.php 0
66 class AKSRT_Admin_Schema_Forum_Upload AKSRT\Admin\Schema\SchemaForumUpload inc/classes/admin/schema/class-aksrt-admin-schema-forum-upload.php src/AKSRT/Admin/Schema/SchemaForumUpload.php 0
67 class AKSRT_Admin_Schema_Forum AKSRT\Admin\Schema\SchemaForum inc/classes/admin/schema/class-aksrt-admin-schema-forum.php src/AKSRT/Admin/Schema/SchemaForum.php 0
68 class AKSRT_Admin_Schema_Global AKSRT\Admin\Schema\GlobalSchema inc/classes/admin/schema/class-aksrt-admin-schema-global.php src/AKSRT/Admin/Schema/GlobalSchema.php 0
69 class AKSRT_Admin_Schema_Page_Display AKSRT\Admin\Schema\SchemaPageDisplay inc/classes/admin/schema/class-aksrt-admin-schema-page-display.php src/AKSRT/Admin/Schema/SchemaPageDisplay.php 0
70 class AKSRT_Admin_Schema_Payment AKSRT\Admin\Schema\SchemaPayment inc/classes/admin/schema/class-aksrt-admin-schema-payment.php src/AKSRT/Admin/Schema/SchemaPayment.php 0
71 class AKSRT_Admin_Schema_Permissions AKSRT\Admin\Schema\SchemaPermissions inc/classes/admin/schema/class-aksrt-admin-schema-permissions.php src/AKSRT/Admin/Schema/SchemaPermissions.php 0
72 class AKSRT_Admin_Schema_Post_List AKSRT\Admin\Schema\SchemaPostList inc/classes/admin/schema/class-aksrt-admin-schema-post-list.php src/AKSRT/Admin/Schema/SchemaPostList.php 0
73 class AKSRT_Admin_Schema_Shop_Basic AKSRT\Admin\Schema\SchemaShopBasic inc/classes/admin/schema/class-aksrt-admin-schema-shop-basic.php src/AKSRT/Admin/Schema/SchemaShopBasic.php 0
74 class AKSRT_Admin_Schema_Shop_Contact AKSRT\Admin\Schema\SchemaShopContact inc/classes/admin/schema/class-aksrt-admin-schema-shop-contact.php src/AKSRT/Admin/Schema/SchemaShopContact.php 0
75 class AKSRT_Admin_Schema_Shop_List AKSRT\Admin\Schema\SchemaShopList inc/classes/admin/schema/class-aksrt-admin-schema-shop-list.php src/AKSRT/Admin/Schema/SchemaShopList.php 0
76 class AKSRT_Admin_Schema_Shop_Product_Defaults AKSRT\Admin\Schema\SchemaShopProductDefaults inc/classes/admin/schema/class-aksrt-admin-schema-shop-product-defaults.php src/AKSRT/Admin/Schema/SchemaShopProductDefaults.php 0
77 class AKSRT_Admin_Schema_Shop_Shipping_Config AKSRT\Admin\Schema\SchemaShopShippingConfig inc/classes/admin/schema/class-aksrt-admin-schema-shop-shipping-config.php src/AKSRT/Admin/Schema/SchemaShopShippingConfig.php 0
78 class AKSRT_Admin_Schema_Shop_Single AKSRT\Admin\Schema\SchemaShopSingle inc/classes/admin/schema/class-aksrt-admin-schema-shop-single.php src/AKSRT/Admin/Schema/SchemaShopSingle.php 0
79 class AKSRT_Admin_Schema_Shop_Timing AKSRT\Admin\Schema\SchemaShopTiming inc/classes/admin/schema/class-aksrt-admin-schema-shop-timing.php src/AKSRT/Admin/Schema/SchemaShopTiming.php 0
80 class AKSRT_Admin_Schema_Shop AKSRT\Admin\Schema\SchemaShop inc/classes/admin/schema/class-aksrt-admin-schema-shop.php src/AKSRT/Admin/Schema/SchemaShop.php 0
81 class AKSRT_Admin_Schema_Tools_Backup AKSRT\Admin\Schema\SchemaToolsBackup inc/classes/admin/schema/class-aksrt-admin-schema-tools-backup.php src/AKSRT/Admin/Schema/SchemaToolsBackup.php 0
82 class AKSRT_Admin_Schema_Tools_Email_Rollback AKSRT\Admin\Schema\SchemaToolsEmailRollback inc/classes/admin/schema/class-aksrt-admin-schema-tools-email-rollback.php src/AKSRT/Admin/Schema/SchemaToolsEmailRollback.php 0
83 class AKSRT_Admin_Schema_Tools_Health AKSRT\Admin\Schema\SchemaToolsHealth inc/classes/admin/schema/class-aksrt-admin-schema-tools-health.php src/AKSRT/Admin/Schema/SchemaToolsHealth.php 0
84 class AKSRT_Admin_Schema_Tools_Import_Export AKSRT\Admin\Schema\SchemaToolsImportExport inc/classes/admin/schema/class-aksrt-admin-schema-tools-import-export.php src/AKSRT/Admin/Schema/SchemaToolsImportExport.php 0
85 class AKSRT_Admin_Schema_Tools AKSRT\Admin\Schema\SchemaTools inc/classes/admin/schema/class-aksrt-admin-schema-tools.php src/AKSRT/Admin/Schema/SchemaTools.php 0
86 class AKSRT_Admin_Schema_Users AKSRT\Admin\Schema\SchemaUsers inc/classes/admin/schema/class-aksrt-admin-schema-users.php src/AKSRT/Admin/Schema/SchemaUsers.php 0
87 class AKSRT_Admin_Schema_Post_List_List AKSRT\Admin\Schema\PostList\SchemaPostListList inc/classes/admin/schema/post-list/class-aksrt-admin-schema-post-list-list.php src/AKSRT/Admin/Schema/PostList/SchemaPostListList.php 0
88 class AKSRT_AI_Prompt AKSRT\Ai\AIPrompt inc/classes/ai/class-aksrt-ai-prompt.php src/AKSRT/Ai/AIPrompt.php 0
89 class AKSRT_AI_SEO AKSRT\Ai\AISEO inc/classes/ai/class-aksrt-ai-seo.php src/AKSRT/Ai/AISEO.php 0
90 class AKSRT_AI AKSRT\Ai\AI inc/classes/ai/class-aksrt-ai.php src/AKSRT/Ai/AI.php 0
91 trait AKSRT_Auth_Service_Part_1a AKSRT\Auth\ServicePart1a inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1a.php src/AKSRT/Auth/ServicePart1a.php 0
92 trait AKSRT_Auth_Service_Part_1b AKSRT\Auth\ServicePart1b inc/classes/auth/auth-traits/trait-aksrt-auth-service-part-1b.php src/AKSRT/Auth/ServicePart1b.php 0
93 class AKSRT_Auth_Email_Verification AKSRT\Auth\EmailVerification inc/classes/auth/class-aksrt-auth-email-verification.php src/AKSRT/Auth/EmailVerification.php 0
94 class AKSRT_Auth_Router AKSRT\Auth\Router inc/classes/auth/class-aksrt-auth-router.php src/AKSRT/Auth/Router.php 0
95 class AKSRT_Auth_Service AKSRT\Auth\Service inc/classes/auth/class-aksrt-auth-service.php src/AKSRT/Auth/Service.php 0
96 class AKSRT_Email_Rollback AKSRT\Auth\EmailRollback inc/classes/auth/class-aksrt-email-rollback.php src/AKSRT/Auth/EmailRollback.php 0
97 class AKSRT_Moderation AKSRT\Auth\Moderation inc/classes/auth/class-aksrt-moderation.php src/AKSRT/Auth/Moderation.php 0
98 class AKSRT_OAuth_Proxy_Client AKSRT\Auth\OAuthProxyClient inc/classes/auth/class-aksrt-oauth-proxy-client.php src/AKSRT/Auth/OAuthProxyClient.php 0
99 class AKSRT_OAuth_Proxy_Server AKSRT\Auth\OAuthProxyServer inc/classes/auth/class-aksrt-oauth-proxy-server.php src/AKSRT/Auth/OAuthProxyServer.php 0
100 class AKSRT_OAuth AKSRT\Auth\OAuth inc/classes/auth/class-aksrt-oauth.php src/AKSRT/Auth/OAuth.php 0
101 trait AKSRT_Moderation_Part_1 AKSRT\Auth\ModerationPart1 inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-1.php src/AKSRT/Auth/ModerationPart1.php 0
102 trait AKSRT_Moderation_Part_2 AKSRT\Auth\ModerationPart2 inc/classes/auth/moderation-traits/trait-aksrt-moderation-part-2.php src/AKSRT/Auth/ModerationPart2.php 0
103 trait AKSRT_OAuth_Part_1 AKSRT\Auth\OAuthPart1 inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-1.php src/AKSRT/Auth/OAuthPart1.php 0
104 trait AKSRT_OAuth_Part_2 AKSRT\Auth\OAuthPart2 inc/classes/auth/oauth-traits/trait-aksrt-oauth-part-2.php src/AKSRT/Auth/OAuthPart2.php 0
105 class AKSRT_Content_Pay AKSRT\Content\Pay inc/classes/content/class-aksrt-content-pay.php src/AKSRT/Content/Pay.php 0
106 class AKSRT_Content_Visibility AKSRT\Content\Visibility inc/classes/content/class-aksrt-content-visibility.php src/AKSRT/Content/Visibility.php 0
107 class AKSRT_Download_State AKSRT\Content\DownloadState inc/classes/content/class-aksrt-download-state.php src/AKSRT/Content/DownloadState.php 0
108 class AKSRT_Download AKSRT\Content\Download inc/classes/content/class-aksrt-download.php src/AKSRT/Content/Download.php 0
109 class AKSRT_Vip_Service AKSRT\Content\VipService inc/classes/content/class-aksrt-vip-service.php src/AKSRT/Content/VipService.php 0
110 trait AKSRT_Content_Pay_Helpers AKSRT\Content\PayHelpers inc/classes/content/content-pay-traits/trait-aksrt-content-pay-helpers.php src/AKSRT/Content/PayHelpers.php 0
111 trait AKSRT_Content_Pay_Orders AKSRT\Content\PayOrders inc/classes/content/content-pay-traits/trait-aksrt-content-pay-orders.php src/AKSRT/Content/PayOrders.php 0
112 trait AKSRT_Content_Pay_Rest AKSRT\Content\PayRest inc/classes/content/content-pay-traits/trait-aksrt-content-pay-rest.php src/AKSRT/Content/PayRest.php 0
113 trait AKSRT_Vip_Service_Packages AKSRT\Content\VipServicePackages inc/classes/content/vip-service-traits/trait-aksrt-vip-service-packages.php src/AKSRT/Content/VipServicePackages.php 0
114 trait AKSRT_Vip_Service_Purchase AKSRT\Content\VipServicePurchase inc/classes/content/vip-service-traits/trait-aksrt-vip-service-purchase.php src/AKSRT/Content/VipServicePurchase.php 0
115 trait AKSRT_Vip_Service_Rest AKSRT\Content\VipServiceRest inc/classes/content/vip-service-traits/trait-aksrt-vip-service-rest.php src/AKSRT/Content/VipServiceRest.php 0
116 class AKSRT_Category_Rewrite AKSRT\Core\CategoryRewrite inc/classes/core/class-aksrt-category-rewrite.php src/AKSRT/Core/CategoryRewrite.php 0
117 class AKSRT_Comment_Actions AKSRT\Core\CommentActions inc/classes/core/class-aksrt-comment-actions.php src/AKSRT/Core/CommentActions.php 0
118 class AKSRT_DB_Migrator AKSRT\Core\DBMigrator inc/classes/core/class-aksrt-db-migrator.php src/AKSRT/Core/DBMigrator.php 0
119 class AKSRT_Docs_Presenter AKSRT\Core\DocsPresenter inc/classes/core/class-aksrt-docs-presenter.php src/AKSRT/Core/DocsPresenter.php 0
120 class AKSRT_Front_Submit AKSRT\Core\FrontSubmit inc/classes/core/class-aksrt-front-submit.php src/AKSRT/Core/FrontSubmit.php 0
121 class AKSRT_Go_Redirect AKSRT\Core\GoRedirect inc/classes/core/class-aksrt-go-redirect.php src/AKSRT/Core/GoRedirect.php 0
122 class AKSRT_Home_Modules AKSRT\Core\HomeModules inc/classes/core/class-aksrt-home-modules.php src/AKSRT/Core/HomeModules.php 0
123 class AKSRT_Post_Meta_Box AKSRT\Core\PostMetaBox inc/classes/core/class-aksrt-post-meta-box.php src/AKSRT/Core/PostMetaBox.php 0
124 class AKSRT_Resource_Meta_Box AKSRT\Core\ResourceMetaBox inc/classes/core/class-aksrt-resource-meta-box.php src/AKSRT/Core/ResourceMetaBox.php 0
125 class AKSRT_Scripts AKSRT\Core\Scripts inc/classes/core/class-aksrt-scripts.php src/AKSRT/Core/Scripts.php 0
126 class AKSRT_SEO_Head AKSRT\Core\SEOHead inc/classes/core/class-aksrt-seo-head.php src/AKSRT/Core/SEOHead.php 0
127 class AKSRT_SEO_Meta_Box AKSRT\Core\SEOMetaBox inc/classes/core/class-aksrt-seo-meta-box.php src/AKSRT/Core/SEOMetaBox.php 0
128 class AKSRT_Setup AKSRT\Core\Setup inc/classes/core/class-aksrt-setup.php src/AKSRT/Core/Setup.php 0
129 class AKSRT_Stats_Tracker AKSRT\Core\StatsTracker inc/classes/core/class-aksrt-stats-tracker.php src/AKSRT/Core/StatsTracker.php 0
130 class AKSRT_Templates AKSRT\Core\Templates inc/classes/core/class-aksrt-templates.php src/AKSRT/Core/Templates.php 0
131 class AKSRT_Term_Meta AKSRT\Core\TermMeta inc/classes/core/class-aksrt-term-meta.php src/AKSRT/Core/TermMeta.php 0
132 class AKSRT_Update_Checker AKSRT\Core\UpdateChecker inc/classes/core/class-aksrt-update-checker.php src/AKSRT/Core/UpdateChecker.php 0
133 trait AKSRT_DB_Migrator_Part_2 AKSRT\Core\DBMigratorPart2 inc/classes/core/db-traits/trait-aksrt-db-migrator-part-2.php src/AKSRT/Core/DBMigratorPart2.php 0
134 trait AKSRT_DB_Migrator_Part_3 AKSRT\Core\DBMigratorPart3 inc/classes/core/db-traits/trait-aksrt-db-migrator-part-3.php src/AKSRT/Core/DBMigratorPart3.php 0
135 trait AKSRT_Scripts_Part_1b AKSRT\Core\ScriptsPart1b inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1b.php src/AKSRT/Core/ScriptsPart1b.php 0
136 trait AKSRT_Scripts_Part_1c AKSRT\Core\ScriptsPart1c inc/classes/core/scripts-traits/trait-aksrt-scripts-part-1c.php src/AKSRT/Core/ScriptsPart1c.php 0
137 trait AKSRT_Scripts_Part_2 AKSRT\Core\ScriptsPart2 inc/classes/core/scripts-traits/trait-aksrt-scripts-part-2.php src/AKSRT/Core/ScriptsPart2.php 0
138 trait AKSRT_Setup_Part_1 AKSRT\Core\SetupPart1 inc/classes/core/setup-traits/trait-aksrt-setup-part-1.php src/AKSRT/Core/SetupPart1.php 0
139 trait AKSRT_Setup_Part_2 AKSRT\Core\SetupPart2 inc/classes/core/setup-traits/trait-aksrt-setup-part-2.php src/AKSRT/Core/SetupPart2.php 0
140 trait AKSRT_Balance_Service_Charge AKSRT\Credits\BalanceServiceCharge inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-charge.php src/AKSRT/Credits/BalanceServiceCharge.php 0
141 trait AKSRT_Balance_Service_Points AKSRT\Credits\BalanceServicePoints inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-points.php src/AKSRT/Credits/BalanceServicePoints.php 0
142 trait AKSRT_Balance_Service_Rest AKSRT\Credits\BalanceServiceRest inc/classes/credits/balance-service-traits/trait-aksrt-balance-service-rest.php src/AKSRT/Credits/BalanceServiceRest.php 0
143 class AKSRT_Balance_Service AKSRT\Credits\BalanceService inc/classes/credits/class-aksrt-balance-service.php src/AKSRT/Credits/BalanceService.php 0
144 class AKSRT_Balance AKSRT\Credits\Balance inc/classes/credits/class-aksrt-balance.php src/AKSRT/Credits/Balance.php 0
145 class AKSRT_Credits_Earn AKSRT\Credits\Earn inc/classes/credits/class-aksrt-credits-earn.php src/AKSRT/Credits/Earn.php 0
146 class AKSRT_Credits AKSRT\Credits\Credits inc/classes/credits/class-aksrt-credits.php src/AKSRT/Credits/Credits.php 0
147 class AKSRT_Invite AKSRT\Credits\Invite inc/classes/credits/class-aksrt-invite.php src/AKSRT/Credits/Invite.php 0
148 class AKSRT_Points_Free AKSRT\Credits\PointsFree inc/classes/credits/class-aksrt-points-free.php src/AKSRT/Credits/PointsFree.php 0
149 class AKSRT_Signin AKSRT\Credits\Signin inc/classes/credits/class-aksrt-signin.php src/AKSRT/Credits/Signin.php 0
150 class AKSRT_API_Audit AKSRT\Extensions\APIAudit inc/classes/extensions/class-aksrt-api-audit.php src/AKSRT/Extensions/APIAudit.php 0
151 class AKSRT_Content_Audit AKSRT\Extensions\ContentAudit inc/classes/extensions/class-aksrt-content-audit.php src/AKSRT/Extensions/ContentAudit.php 0
152 class AKSRT_IP_Geo AKSRT\Extensions\IPGeo inc/classes/extensions/class-aksrt-ip-geo.php src/AKSRT/Extensions/IPGeo.php 0
153 class AKSRT_MeiliSearch AKSRT\Extensions\MeiliSearch inc/classes/extensions/class-aksrt-meilisearch.php src/AKSRT/Extensions/MeiliSearch.php 0
154 class AKSRT_Search_Push AKSRT\Extensions\SearchPush inc/classes/extensions/class-aksrt-search-push.php src/AKSRT/Extensions/SearchPush.php 0
155 trait AKSRT_Forum_Board_Service_Part_1 AKSRT\Forum\BoardServicePart1 inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-1.php src/AKSRT/Forum/BoardServicePart1.php 0
156 trait AKSRT_Forum_Board_Service_Part_2 AKSRT\Forum\BoardServicePart2 inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-2.php src/AKSRT/Forum/BoardServicePart2.php 0
157 trait AKSRT_Forum_Board_Service_Part_3 AKSRT\Forum\BoardServicePart3 inc/classes/forum/board-service-traits/trait-aksrt-forum-board-service-part-3.php src/AKSRT/Forum/BoardServicePart3.php 0
158 class AKSRT_Forum_Board_Service AKSRT\Forum\BoardService inc/classes/forum/class-aksrt-forum-board-service.php src/AKSRT/Forum/BoardService.php 0
159 class AKSRT_Forum_Comment_Service AKSRT\Forum\CommentService inc/classes/forum/class-aksrt-forum-comment-service.php src/AKSRT/Forum/CommentService.php 0
160 class AKSRT_Forum_Draft_Service AKSRT\Forum\DraftService inc/classes/forum/class-aksrt-forum-draft-service.php src/AKSRT/Forum/DraftService.php 0
161 class AKSRT_Forum_Moderation_Service AKSRT\Forum\ModerationService inc/classes/forum/class-aksrt-forum-moderation-service.php src/AKSRT/Forum/ModerationService.php 0
162 class AKSRT_Forum_Permission_Service AKSRT\Forum\PermissionService inc/classes/forum/class-aksrt-forum-permission-service.php src/AKSRT/Forum/PermissionService.php 0
163 class AKSRT_Forum_Score_Service AKSRT\Forum\ScoreService inc/classes/forum/class-aksrt-forum-score-service.php src/AKSRT/Forum/ScoreService.php 0
164 class AKSRT_Forum_Topic_Service AKSRT\Forum\TopicService inc/classes/forum/class-aksrt-forum-topic-service.php src/AKSRT/Forum/TopicService.php 0
165 class AKSRT_Forum_View_Builder AKSRT\Forum\ViewBuilder inc/classes/forum/class-aksrt-forum-view-builder.php src/AKSRT/Forum/ViewBuilder.php 0
166 class AKSRT_Forum AKSRT\Forum\Forum inc/classes/forum/class-aksrt-forum.php src/AKSRT/Forum/Forum.php 0
167 class AKSRT_Plate_Admin_List AKSRT\Forum\PlateAdminList inc/classes/forum/class-aksrt-plate-admin-list.php src/AKSRT/Forum/PlateAdminList.php 0
168 class AKSRT_Plate_Follow_Pay AKSRT\Forum\PlateFollowPay inc/classes/forum/class-aksrt-plate-follow-pay.php src/AKSRT/Forum/PlateFollowPay.php 0
169 class AKSRT_Plate_Meta_Box AKSRT\Forum\PlateMetaBox inc/classes/forum/class-aksrt-plate-meta-box.php src/AKSRT/Forum/PlateMetaBox.php 0
170 class AKSRT_Topic_Admin_List AKSRT\Forum\TopicAdminList inc/classes/forum/class-aksrt-topic-admin-list.php src/AKSRT/Forum/TopicAdminList.php 0
171 class AKSRT_Topic_Meta_Box AKSRT\Forum\TopicMetaBox inc/classes/forum/class-aksrt-topic-meta-box.php src/AKSRT/Forum/TopicMetaBox.php 0
172 class AKSRT_Topic_Pay AKSRT\Forum\TopicPay inc/classes/forum/class-aksrt-topic-pay.php src/AKSRT/Forum/TopicPay.php 0
173 trait AKSRT_Forum_Topic_Service_Part_1 AKSRT\Forum\TopicServicePart1 inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-1.php src/AKSRT/Forum/TopicServicePart1.php 0
174 trait AKSRT_Forum_Topic_Service_Part_2 AKSRT\Forum\TopicServicePart2 inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-2.php src/AKSRT/Forum/TopicServicePart2.php 0
175 trait AKSRT_Forum_Topic_Service_Part_3 AKSRT\Forum\TopicServicePart3 inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-3.php src/AKSRT/Forum/TopicServicePart3.php 0
176 trait AKSRT_Forum_Topic_Service_Part_4 AKSRT\Forum\TopicServicePart4 inc/classes/forum/topic-service-traits/trait-aksrt-forum-topic-service-part-4.php src/AKSRT/Forum/TopicServicePart4.php 0
177 trait AKSRT_Forum_View_Builder_Part_1 AKSRT\Forum\ViewBuilderPart1 inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-1.php src/AKSRT/Forum/ViewBuilderPart1.php 0
178 trait AKSRT_Forum_View_Builder_Part_2 AKSRT\Forum\ViewBuilderPart2 inc/classes/forum/view-builder-traits/trait-aksrt-forum-view-builder-part-2.php src/AKSRT/Forum/ViewBuilderPart2.php 0
179 class AKSRT_Custom_Code_Renderer AKSRT\Frontend\CustomCodeRenderer inc/classes/frontend/class-aksrt-custom-code-renderer.php src/AKSRT/Frontend/CustomCodeRenderer.php 0
180 class AKSRT_Inline_Style_Builder AKSRT\Frontend\InlineStyleBuilder inc/classes/frontend/class-aksrt-inline-style-builder.php src/AKSRT/Frontend/InlineStyleBuilder.php 0
181 class AKSRT_Loading_Overlay_Renderer AKSRT\Frontend\LoadingOverlayRenderer inc/classes/frontend/class-aksrt-loading-overlay-renderer.php src/AKSRT/Frontend/LoadingOverlayRenderer.php 0
182 class AKSRT_Message AKSRT\Messages\Message inc/classes/messages/class-aksrt-message.php src/AKSRT/Messages/Message.php 0
183 class AKSRT_Private_Message AKSRT\Messages\PrivateMessage inc/classes/messages/class-aksrt-private-message.php src/AKSRT/Messages/PrivateMessage.php 0
184 class AKSRT_Report_Center AKSRT\Messages\ReportCenter inc/classes/messages/class-aksrt-report-center.php src/AKSRT/Messages/ReportCenter.php 0
185 class AKSRT_Site_Notice AKSRT\Messages\SiteNotice inc/classes/messages/class-aksrt-site-notice.php src/AKSRT/Messages/SiteNotice.php 0
186 class AKSRT_After_Sale AKSRT\Payment\AfterSale inc/classes/payment/class-aksrt-after-sale.php src/AKSRT/Payment/AfterSale.php 0
187 class AKSRT_Charge_Card AKSRT\Payment\ChargeCard inc/classes/payment/class-aksrt-charge-card.php src/AKSRT/Payment/ChargeCard.php 0
188 class AKSRT_Coupon AKSRT\Payment\Coupon inc/classes/payment/class-aksrt-coupon.php src/AKSRT/Payment/Coupon.php 0
189 class AKSRT_Discount AKSRT\Payment\Discount inc/classes/payment/class-aksrt-discount.php src/AKSRT/Payment/Discount.php 0
190 class AKSRT_Order_Repository AKSRT\Payment\OrderRepository inc/classes/payment/class-aksrt-order-repository.php src/AKSRT/Payment/OrderRepository.php 0
191 class AKSRT_Order AKSRT\Payment\Order inc/classes/payment/class-aksrt-order.php src/AKSRT/Payment/Order.php 0
192 interface AKSRT_Payment_Gateway_Interface AKSRT\Payment\GatewayInterface inc/classes/payment/class-aksrt-payment-gateway.php src/AKSRT/Payment/GatewayInterface.php 1
193 class AKSRT_Payment_Gateway AKSRT\Payment\Gateway inc/classes/payment/class-aksrt-payment-gateway.php src/AKSRT/Payment/Gateway.php 1
194 class AKSRT_Balance_Gateway AKSRT\Payment\BalanceGateway inc/classes/payment/class-aksrt-payment-gateway.php src/AKSRT/Payment/BalanceGateway.php 1
195 class AKSRT_Rebate AKSRT\Payment\Rebate inc/classes/payment/class-aksrt-rebate.php src/AKSRT/Payment/Rebate.php 0
196 class AKSRT_Revenue AKSRT\Payment\Revenue inc/classes/payment/class-aksrt-revenue.php src/AKSRT/Payment/Revenue.php 0
197 class AKSRT_Shipping AKSRT\Payment\Shipping inc/classes/payment/class-aksrt-shipping.php src/AKSRT/Payment/Shipping.php 0
198 class AKSRT_WeChat_Notify AKSRT\Payment\WeChatNotify inc/classes/payment/class-aksrt-wechat-notify.php src/AKSRT/Payment/WeChatNotify.php 0
199 class AKSRT_Withdrawal AKSRT\Payment\Withdrawal inc/classes/payment/class-aksrt-withdrawal.php src/AKSRT/Payment/Withdrawal.php 0
200 class AKSRT_Alipay_Gateway AKSRT\Payment\Gateways\AlipayGateway inc/classes/payment/gateways/class-aksrt-alipay-gateway.php src/AKSRT/Payment/Gateways/AlipayGateway.php 0
201 class AKSRT_PayPal_Gateway AKSRT\Payment\Gateways\PayPalGateway inc/classes/payment/gateways/class-aksrt-paypal-gateway.php src/AKSRT/Payment/Gateways/PayPalGateway.php 0
202 class AKSRT_Stripe_Gateway AKSRT\Payment\Gateways\StripeGateway inc/classes/payment/gateways/class-aksrt-stripe-gateway.php src/AKSRT/Payment/Gateways/StripeGateway.php 0
203 class AKSRT_WechatPay_Gateway AKSRT\Payment\Gateways\WechatPayGateway inc/classes/payment/gateways/class-aksrt-wechatpay-gateway.php src/AKSRT/Payment/Gateways/WechatPayGateway.php 0
204 trait AKSRT_Order_Repository_Admin AKSRT\Payment\OrderRepositoryAdmin inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-admin.php src/AKSRT/Payment/OrderRepositoryAdmin.php 0
205 trait AKSRT_Order_Repository_Core AKSRT\Payment\OrderRepositoryCore inc/classes/payment/order-repository-traits/trait-aksrt-order-repository-core.php src/AKSRT/Payment/OrderRepositoryCore.php 0
206 trait AKSRT_Shipping_Part_1 AKSRT\Payment\ShippingPart1 inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-1.php src/AKSRT/Payment/ShippingPart1.php 0
207 trait AKSRT_Shipping_Part_2 AKSRT\Payment\ShippingPart2 inc/classes/payment/shipping-traits/trait-aksrt-shipping-part-2.php src/AKSRT/Payment/ShippingPart2.php 0
208 class AKSRT_Settings_Capabilities AKSRT\Settings\Capabilities inc/classes/settings/class-aksrt-settings-capabilities.php src/AKSRT/Settings/Capabilities.php 0
209 trait AKSRT_Settings_Category_Integration_Groups AKSRT\Settings\CategoryIntegrationGroups inc/classes/settings/class-aksrt-settings-category-integration-groups.php src/AKSRT/Settings/CategoryIntegrationGroups.php 0
210 class AKSRT_Settings_Category_Runtime AKSRT\Settings\CategoryRuntime inc/classes/settings/class-aksrt-settings-category-runtime.php src/AKSRT/Settings/CategoryRuntime.php 0
211 trait AKSRT_Settings_Credits_Payment_Groups AKSRT\Settings\CreditsPaymentGroups inc/classes/settings/class-aksrt-settings-credits-payment-groups.php src/AKSRT/Settings/CreditsPaymentGroups.php 0
212 class AKSRT_Settings_Credits_Runtime AKSRT\Settings\CreditsRuntime inc/classes/settings/class-aksrt-settings-credits-runtime.php src/AKSRT/Settings/CreditsRuntime.php 0
213 trait AKSRT_Settings_Display_Page_Groups AKSRT\Settings\DisplayPageGroups inc/classes/settings/class-aksrt-settings-display-page-groups.php src/AKSRT/Settings/DisplayPageGroups.php 0
214 class AKSRT_Settings_Display_Runtime AKSRT\Settings\DisplayRuntime inc/classes/settings/class-aksrt-settings-display-runtime.php src/AKSRT/Settings/DisplayRuntime.php 0
215 trait AKSRT_Settings_Domain_Groups AKSRT\Settings\DomainGroups inc/classes/settings/class-aksrt-settings-domain-groups.php src/AKSRT/Settings/DomainGroups.php 0
216 class AKSRT_Settings_Extension_Runtime AKSRT\Settings\ExtensionRuntime inc/classes/settings/class-aksrt-settings-extension-runtime.php src/AKSRT/Settings/ExtensionRuntime.php 0
217 class AKSRT_Settings_Forum_Shop AKSRT\Settings\ForumShop inc/classes/settings/class-aksrt-settings-forum-shop.php src/AKSRT/Settings/ForumShop.php 0
218 class AKSRT_Settings_Home_Cms AKSRT\Settings\HomeCms inc/classes/settings/class-aksrt-settings-home-cms.php src/AKSRT/Settings/HomeCms.php 0
219 class AKSRT_Settings_Integration AKSRT\Settings\Integration inc/classes/settings/class-aksrt-settings-integration.php src/AKSRT/Settings/Integration.php 0
220 class AKSRT_Settings_Mail AKSRT\Settings\Mail inc/classes/settings/class-aksrt-settings-mail.php src/AKSRT/Settings/Mail.php 0
221 class AKSRT_Settings_Payment_Runtime AKSRT\Settings\PaymentRuntime inc/classes/settings/class-aksrt-settings-payment-runtime.php src/AKSRT/Settings/PaymentRuntime.php 0
222 class AKSRT_Settings_Post_Display AKSRT\Settings\PostDisplay inc/classes/settings/class-aksrt-settings-post-display.php src/AKSRT/Settings/PostDisplay.php 0
223 class AKSRT_Settings_Theme_Search AKSRT\Settings\ThemeSearch inc/classes/settings/class-aksrt-settings-theme-search.php src/AKSRT/Settings/ThemeSearch.php 0
224 class AKSRT_Settings_User_Runtime AKSRT\Settings\UserRuntime inc/classes/settings/class-aksrt-settings-user-runtime.php src/AKSRT/Settings/UserRuntime.php 0
225 class AKSRT_Settings AKSRT\Settings\Settings inc/classes/settings/class-aksrt-settings.php src/AKSRT/Settings/Settings.php 0
226 trait AKSRT_Settings_Auth_Reader AKSRT\Settings\AuthReader inc/classes/settings/trait-aksrt-settings-auth-reader.php src/AKSRT/Settings/AuthReader.php 0
227 trait AKSRT_Settings_Facade_Bulk AKSRT\Settings\FacadeBulk inc/classes/settings/trait-aksrt-settings-facade-bulk.php src/AKSRT/Settings/FacadeBulk.php 0
228 trait AKSRT_Settings_Homepage_Reader AKSRT\Settings\HomepageReader inc/classes/settings/trait-aksrt-settings-homepage-reader.php src/AKSRT/Settings/HomepageReader.php 0
229 class AKSRT_Product_Meta_Box AKSRT\Shop\ProductMetaBox inc/classes/shop/class-aksrt-product-meta-box.php src/AKSRT/Shop/ProductMetaBox.php 0
230 class AKSRT_Product_Review AKSRT\Shop\ProductReview inc/classes/shop/class-aksrt-product-review.php src/AKSRT/Shop/ProductReview.php 0
231 class AKSRT_Product_Variants_Meta_Box AKSRT\Shop\ProductVariantsMetaBox inc/classes/shop/class-aksrt-product-variants-meta-box.php src/AKSRT/Shop/ProductVariantsMetaBox.php 0
232 class AKSRT_Shop_Address_Service AKSRT\Shop\AddressService inc/classes/shop/class-aksrt-shop-address-service.php src/AKSRT/Shop/AddressService.php 0
233 class AKSRT_Shop_Cart_Service AKSRT\Shop\CartService inc/classes/shop/class-aksrt-shop-cart-service.php src/AKSRT/Shop/CartService.php 0
234 class AKSRT_Shop_Checkout_Service AKSRT\Shop\CheckoutService inc/classes/shop/class-aksrt-shop-checkout-service.php src/AKSRT/Shop/CheckoutService.php 0
235 class AKSRT_Shop_Product_Service AKSRT\Shop\ProductService inc/classes/shop/class-aksrt-shop-product-service.php src/AKSRT/Shop/ProductService.php 0
236 class AKSRT_Shop_Term_Meta AKSRT\Shop\TermMeta inc/classes/shop/class-aksrt-shop-term-meta.php src/AKSRT/Shop/TermMeta.php 0
237 class AKSRT_Shop AKSRT\Shop\Shop inc/classes/shop/class-aksrt-shop.php src/AKSRT/Shop/Shop.php 0
238 trait AKSRT_Shop_Part_1 AKSRT\Shop\Part1 inc/classes/shop/shop-traits/trait-aksrt-shop-part-1.php src/AKSRT/Shop/Part1.php 0
239 trait AKSRT_Shop_Part_2 AKSRT\Shop\Part2 inc/classes/shop/shop-traits/trait-aksrt-shop-part-2.php src/AKSRT/Shop/Part2.php 0
240 trait AKSRT_Shop_Part_3 AKSRT\Shop\Part3 inc/classes/shop/shop-traits/trait-aksrt-shop-part-3.php src/AKSRT/Shop/Part3.php 0
241 class AKSRT_SMS_Provider_Aliyun AKSRT\Sms\SMSProviderAliyun inc/classes/sms/class-aksrt-sms-provider-aliyun.php src/AKSRT/Sms/SMSProviderAliyun.php 0
242 class AKSRT_SMS_Provider_Custom AKSRT\Sms\SMSProviderCustom inc/classes/sms/class-aksrt-sms-provider-custom.php src/AKSRT/Sms/SMSProviderCustom.php 0
243 class AKSRT_SMS_Provider_Factory AKSRT\Sms\SMSProviderFactory inc/classes/sms/class-aksrt-sms-provider-factory.php src/AKSRT/Sms/SMSProviderFactory.php 0
244 class AKSRT_SMS_Provider_Huawei AKSRT\Sms\SMSProviderHuawei inc/classes/sms/class-aksrt-sms-provider-huawei.php src/AKSRT/Sms/SMSProviderHuawei.php 0
245 class AKSRT_SMS_Provider_Tencent AKSRT\Sms\SMSProviderTencent inc/classes/sms/class-aksrt-sms-provider-tencent.php src/AKSRT/Sms/SMSProviderTencent.php 0
246 interface AKSRT_SMS_Provider AKSRT\Sms\ProviderInterface inc/classes/sms/class-aksrt-sms-provider.php src/AKSRT/Sms/ProviderInterface.php 0
247 class AKSRT_SMS_Signature_Helper AKSRT\Sms\SMSSignatureHelper inc/classes/sms/class-aksrt-sms-signature-helper.php src/AKSRT/Sms/SMSSignatureHelper.php 0
248 class AKSRT_SMS AKSRT\Sms\SMS inc/classes/sms/class-aksrt-sms.php src/AKSRT/Sms/SMS.php 0
249 class AKSRT_Follow AKSRT\User\Follow inc/classes/user/class-aksrt-follow.php src/AKSRT/User/Follow.php 0
250 class AKSRT_User_Badges_Admin AKSRT\User\BadgesAdmin inc/classes/user/class-aksrt-user-badges-admin.php src/AKSRT/User/BadgesAdmin.php 0
251 class AKSRT_User_Badges AKSRT\User\Badges inc/classes/user/class-aksrt-user-badges.php src/AKSRT/User/Badges.php 0
252 class AKSRT_User_Balance_Admin AKSRT\User\BalanceAdmin inc/classes/user/class-aksrt-user-balance-admin.php src/AKSRT/User/BalanceAdmin.php 0
253 class AKSRT_User_Center AKSRT\User\Center inc/classes/user/class-aksrt-user-center.php src/AKSRT/User/Center.php 0
254 class AKSRT_User_Credits_Admin AKSRT\User\CreditsAdmin inc/classes/user/class-aksrt-user-credits-admin.php src/AKSRT/User/CreditsAdmin.php 0
255 class AKSRT_User_Home AKSRT\User\Home inc/classes/user/class-aksrt-user-home.php src/AKSRT/User/Home.php 0
256 class AKSRT_User_Level AKSRT\User\Level inc/classes/user/class-aksrt-user-level.php src/AKSRT/User/Level.php 0
257 class AKSRT_User_Metrics AKSRT\User\Metrics inc/classes/user/class-aksrt-user-metrics.php src/AKSRT/User/Metrics.php 0
258 class AKSRT_User_Restriction AKSRT\User\Restriction inc/classes/user/class-aksrt-user-restriction.php src/AKSRT/User/Restriction.php 0
259 class AKSRT_Widget_Announcement AKSRT\Widgets\WidgetAnnouncement inc/classes/widgets/class-aksrt-announcement-widget.php src/AKSRT/Widgets/WidgetAnnouncement.php 0
260 class AKSRT_Widget_Cover_Cards AKSRT\Widgets\WidgetCoverCards inc/classes/widgets/class-aksrt-cover-cards-widget.php src/AKSRT/Widgets/WidgetCoverCards.php 0
261 class AKSRT_Widget_Forum_Hot_Topics AKSRT\Widgets\WidgetForumHotTopics inc/classes/widgets/class-aksrt-forum-widgets.php src/AKSRT/Widgets/WidgetForumHotTopics.php 1
262 class AKSRT_Widget_Forum_Recent_Topics AKSRT\Widgets\WidgetForumRecentTopics inc/classes/widgets/class-aksrt-forum-widgets.php src/AKSRT/Widgets/WidgetForumRecentTopics.php 1
263 class AKSRT_Widget_Forum_Board_List AKSRT\Widgets\WidgetForumBoardList inc/classes/widgets/class-aksrt-forum-widgets.php src/AKSRT/Widgets/WidgetForumBoardList.php 1
264 class AKSRT_Category_Block_Widget AKSRT\Widgets\CategoryBlockWidget inc/classes/widgets/class-aksrt-home-widgets.php src/AKSRT/Widgets/CategoryBlockWidget.php 1
265 class AKSRT_Category_Tabs_Widget AKSRT\Widgets\CategoryTabsWidget inc/classes/widgets/class-aksrt-home-widgets.php src/AKSRT/Widgets/CategoryTabsWidget.php 1
266 class AKSRT_Category_Recommend_Widget AKSRT\Widgets\CategoryRecommendWidget inc/classes/widgets/class-aksrt-home-widgets.php src/AKSRT/Widgets/CategoryRecommendWidget.php 1
267 class AKSRT_Widget_Lang_Switch AKSRT\Widgets\WidgetLangSwitch inc/classes/widgets/class-aksrt-lang-switch-widget.php src/AKSRT/Widgets/WidgetLangSwitch.php 0
268 class AKSRT_Widget_Product_List AKSRT\Widgets\WidgetProductList inc/classes/widgets/class-aksrt-shop-widgets.php src/AKSRT/Widgets/WidgetProductList.php 1
269 class AKSRT_Widget_Product_Oneline AKSRT\Widgets\WidgetProductOneline inc/classes/widgets/class-aksrt-shop-widgets.php src/AKSRT/Widgets/WidgetProductOneline.php 1
270 class AKSRT_Widget_Product_Tab AKSRT\Widgets\WidgetProductTab inc/classes/widgets/class-aksrt-shop-widgets.php src/AKSRT/Widgets/WidgetProductTab.php 1
271 class AKSRT_Widget_User_Card AKSRT\Widgets\WidgetUserCard inc/classes/widgets/class-aksrt-user-card-widget.php src/AKSRT/Widgets/WidgetUserCard.php 0
272 class AKSRT_Widget_User_Ranking AKSRT\Widgets\WidgetUserRanking inc/classes/widgets/class-aksrt-user-ranking-widget.php src/AKSRT/Widgets/WidgetUserRanking.php 0
273 class AKSRT_Widget_Video_Player AKSRT\Widgets\WidgetVideoPlayer inc/classes/widgets/class-aksrt-video-player-widget.php src/AKSRT/Widgets/WidgetVideoPlayer.php 0
274 class AKSRT_Search_Widget AKSRT\Widgets\SearchWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/SearchWidget.php 1
275 class AKSRT_Notice_Widget AKSRT\Widgets\NoticeWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/NoticeWidget.php 1
276 class AKSRT_Recent_Comments_Widget AKSRT\Widgets\RecentCommentsWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/RecentCommentsWidget.php 1
277 class AKSRT_Friend_Links_Widget AKSRT\Widgets\FriendLinksWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/FriendLinksWidget.php 1
278 class AKSRT_Icon_Cards_Widget AKSRT\Widgets\IconCardsWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/IconCardsWidget.php 1
279 class AKSRT_Buttons_Widget AKSRT\Widgets\ButtonsWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/ButtonsWidget.php 1
280 class AKSRT_Custom_HTML_Gap_Widget AKSRT\Widgets\CustomHtmlGapWidget inc/classes/widgets/class-aksrt-widgets-batch1.php src/AKSRT/Widgets/CustomHtmlGapWidget.php 1
281 class AKSRT_Hot_Posts_Widget AKSRT\Widgets\HotPostsWidget inc/classes/widgets/class-aksrt-widgets-new.php src/AKSRT/Widgets/HotPostsWidget.php 1
282 class AKSRT_Tab_Posts_Widget AKSRT\Widgets\TabPostsWidget inc/classes/widgets/class-aksrt-widgets-new.php src/AKSRT/Widgets/TabPostsWidget.php 1
283 class AKSRT_About_Widget AKSRT\Widgets\AboutWidget inc/classes/widgets/class-aksrt-widgets-original.php src/AKSRT/Widgets/AboutWidget.php 1
284 class AKSRT_Categories_Widget AKSRT\Widgets\CategoriesWidget inc/classes/widgets/class-aksrt-widgets-original.php src/AKSRT/Widgets/CategoriesWidget.php 1
285 class AKSRT_Tag_Cloud_Widget AKSRT\Widgets\TagCloudWidget inc/classes/widgets/class-aksrt-widgets-original.php src/AKSRT/Widgets/TagCloudWidget.php 1
286 class AKSRT_Widget_Yiyan AKSRT\Widgets\WidgetYiyan inc/classes/widgets/class-aksrt-yiyan-widget.php src/AKSRT/Widgets/WidgetYiyan.php 0
287 class AKSRT_Nav_Walker AKSRT\Frontend\NavWalker inc/helpers/class-aksrt-nav-walker.php src/AKSRT/Frontend/NavWalker.php 0
288 class AKSRT_Shortcodes AKSRT\Core\Shortcodes inc/helpers/aksrt-shortcodes.php src/AKSRT/Core/Shortcodes.php 0
289 class AKSRT_Domain_Model AKSRT\Core\DomainModel inc/helpers/aksrt-domain-model.php src/AKSRT/Core/DomainModel.php 0
File diff suppressed because it is too large Load Diff
+671
View File
@@ -0,0 +1,671 @@
#!/usr/bin/env php
<?php
/**
* One-shot PSR-4 migrator for AKSRT theme.
*
* Prerequisites: php tools/build-psr4-map.php --write
*
* Usage:
* php tools/psr4-migrate.php --dry-run
* php tools/psr4-migrate.php --apply
*
* @package AKSRT
*/
declare(strict_types=1);
$root = dirname(__DIR__);
$apply = in_array('--apply', $argv, true);
$dry = !$apply;
$map_file = $root . '/tools/psr4-map/map.json';
if (!is_file($map_file)) {
fwrite(STDERR, "Missing map. Run: php tools/build-psr4-map.php --write\n");
exit(1);
}
/** @var array{entries: list<array<string,mixed>>, procedural: list<string>} $map */
$map = json_decode((string) file_get_contents($map_file), true, 512, JSON_THROW_ON_ERROR);
const PRESERVE_TOKENS = [
'AKSRT_DIR',
'AKSRT_URI',
'AKSRT_VERSION',
'AKSRT_NO_EMAIL_GATE',
];
/**
* Find declaration start offset for a type name.
*/
function aksrt_find_decl_start(string $text, string $old_name): ?int {
if (!preg_match(
'/(?:abstract\s+|final\s+)?(?:class|trait|interface)\s+' . preg_quote($old_name, '/') . '\b/',
$text,
$m,
PREG_OFFSET_CAPTURE
)) {
return null;
}
$decl = (int) $m[0][1];
// Include immediately preceding docblock if present.
$before = substr($text, 0, $decl);
if (preg_match('/(?:\n|^)\s*\/\*\*[\s\S]*?\*\/\s*\z/', $before, $dm, PREG_OFFSET_CAPTURE)) {
return (int) $dm[0][1];
}
return $decl;
}
/**
* Extract one class/trait/interface by brace matching from its declaration.
*/
function aksrt_extract_type(string $text, string $old_name): ?string {
$start = aksrt_find_decl_start($text, $old_name);
if ($start === null) {
return null;
}
$brace = strpos($text, '{', $start);
if ($brace === false) {
// Possible empty interface? require body.
return null;
}
$len = strlen($text);
$depth = 0;
$in_str = false;
$str_q = '';
$in_line_comment = false;
$in_block_comment = false;
$escape = false;
for ($i = $brace; $i < $len; $i++) {
$ch = $text[$i];
$next = $i + 1 < $len ? $text[$i + 1] : '';
if ($in_line_comment) {
if ($ch === "\n") {
$in_line_comment = false;
}
continue;
}
if ($in_block_comment) {
if ($ch === '*' && $next === '/') {
$in_block_comment = false;
$i++;
}
continue;
}
if ($in_str) {
if ($escape) {
$escape = false;
continue;
}
if ($ch === '\\') {
$escape = true;
continue;
}
if ($ch === $str_q) {
$in_str = false;
}
continue;
}
if ($ch === '/' && $next === '/') {
$in_line_comment = true;
$i++;
continue;
}
if ($ch === '/' && $next === '*') {
$in_block_comment = true;
$i++;
continue;
}
if ($ch === '"' || $ch === "'") {
$in_str = true;
$str_q = $ch;
continue;
}
// Heredoc/nowdoc not handled fully — rare in this codebase.
if ($ch === '{') {
$depth++;
} elseif ($ch === '}') {
$depth--;
if ($depth === 0) {
return substr($text, $start, $i - $start + 1);
}
}
}
return null;
}
/**
* @param list<array<string,mixed>> $entries
* @return array<string, string>
*/
function aksrt_replacements(array $entries): array {
$rep = [];
foreach ($entries as $e) {
$rep[$e['old']] = '\\' . $e['new_fqcn'];
}
uksort($rep, static fn($a, $b) => strlen($b) <=> strlen($a));
return $rep;
}
/**
* @param array<string, string> $rep
*/
function aksrt_rewrite_refs(string $code, array $rep): string {
$protected = [];
$i = 0;
foreach (PRESERVE_TOKENS as $tok) {
$ph = "\0PRESERVE{$i}\0";
$protected[$ph] = $tok;
$code = str_replace($tok, $ph, $code);
$i++;
}
if ($rep) {
$pattern = '/\b(' . implode('|', array_map(static fn($k) => preg_quote($k, '/'), array_keys($rep))) . ')\b/';
$code = preg_replace_callback($pattern, static function ($m) use ($rep) {
return $rep[$m[1]] ?? $m[1];
}, $code) ?? $code;
}
foreach ($protected as $ph => $tok) {
$code = str_replace($ph, $tok, $code);
}
return $code;
}
/**
* @param array<string,mixed> $entry
* @param array<string,string> $rep
*/
function aksrt_build_namespaced_file(array $entry, string $body, array $rep): string {
$kind = $entry['kind'];
$old = $entry['old'];
$short = $entry['short'];
$ns = $entry['namespace'];
$body = preg_replace(
'/(abstract\s+|final\s+)?(' . preg_quote($kind, '/') . ')\s+' . preg_quote($old, '/') . '\b/',
'$1$2 ' . $short,
$body,
1
) ?? $body;
$body = aksrt_rewrite_refs($body, $rep);
// Same-namespace FQCN → short name.
$body = preg_replace(
'/\\\\' . preg_quote($ns, '/') . '\\\\(\w+)/',
'$1',
$body
) ?? $body;
$out = "<?php\n/**\n * @package AKSRT\n */\n\nnamespace {$ns};\n\ndefined('ABSPATH') || exit;\n\n";
$out .= rtrim($body) . "\n";
return $out;
}
function aksrt_ensure_dir(string $file): void {
$dir = dirname($file);
if (!is_dir($dir) && !mkdir($dir, 0777, true) && !is_dir($dir)) {
throw new RuntimeException("mkdir failed: {$dir}");
}
}
function aksrt_write(string $abs, string $contents, bool $dry): void {
if ($dry) {
echo '[dry] write ' . $abs . ' (' . strlen($contents) . " bytes)\n";
return;
}
aksrt_ensure_dir($abs);
if (file_put_contents($abs, $contents) === false) {
throw new RuntimeException("write failed: {$abs}");
}
}
$rep = aksrt_replacements($map['entries']);
$entries = $map['entries'];
echo ($dry ? 'DRY-RUN' : 'APPLY') . ' — ' . count($entries) . " types\n";
$old_type_paths = [];
$failed = [];
$written = 0;
foreach ($entries as $entry) {
$old_abs = $root . '/' . $entry['old_path'];
$new_abs = $root . '/' . $entry['new_path'];
$old_type_paths[$entry['old_path']] = true;
if (!is_file($old_abs)) {
if (is_file($new_abs)) {
continue;
}
$failed[] = "missing source {$entry['old_path']} for {$entry['old']}";
continue;
}
$text = (string) file_get_contents($old_abs);
$chunk = aksrt_extract_type($text, $entry['old']);
if ($chunk === null) {
$failed[] = "cannot extract {$entry['old']} from {$entry['old_path']}";
continue;
}
$contents = aksrt_build_namespaced_file($entry, $chunk, $rep);
aksrt_write($new_abs, $contents, $dry);
$written++;
}
echo "Type files: {$written}\n";
if ($failed) {
fwrite(STDERR, "Extraction failures (" . count($failed) . "):\n");
foreach (array_slice($failed, 0, 30) as $f) {
fwrite(STDERR, " {$f}\n");
}
if (!$dry) {
exit(1);
}
}
$proc_moves = [
'inc/classes/auth/class-aksrt-captcha.php' => 'inc/modules/captcha.php',
'inc/classes/payment/class-aksrt-creator-revenue.php' => 'inc/modules/creator-revenue.php',
'inc/classes/user/class-aksrt-user-notifications.php' => 'inc/modules/user-notifications.php',
'inc/classes/user/class-aksrt-user.php' => 'inc/modules/user-hub.php',
'inc/classes/user/user-parts/aksrt-user-account-ajax.php' => 'inc/modules/user-parts/account-ajax.php',
'inc/classes/user/user-parts/aksrt-user-routing.php' => 'inc/modules/user-parts/routing.php',
'inc/classes/user/user-parts/aksrt-user-template-registry.php' => 'inc/modules/user-parts/template-registry.php',
'inc/classes/user/user-parts/aksrt-user-urls.php' => 'inc/modules/user-parts/urls.php',
'inc/classes/widgets/class-aksrt-widgets.php' => 'inc/modules/widgets-register.php',
];
foreach ($proc_moves as $from => $to) {
$from_abs = $root . '/' . $from;
$to_abs = $root . '/' . $to;
if (!is_file($from_abs) && is_file($to_abs)) {
continue;
}
if (!is_file($from_abs)) {
echo "warn: procedural missing {$from}\n";
continue;
}
$text = (string) file_get_contents($from_abs);
if ($from === 'inc/classes/user/class-aksrt-user.php') {
$text = str_replace(
[
"__DIR__ . '/user-parts/aksrt-user-template-registry.php'",
"__DIR__ . '/user-parts/aksrt-user-urls.php'",
"__DIR__ . '/user-parts/aksrt-user-routing.php'",
"__DIR__ . '/user-parts/aksrt-user-account-ajax.php'",
],
[
"__DIR__ . '/user-parts/template-registry.php'",
"__DIR__ . '/user-parts/urls.php'",
"__DIR__ . '/user-parts/routing.php'",
"__DIR__ . '/user-parts/account-ajax.php'",
],
$text
);
}
$text = aksrt_rewrite_refs($text, $rep);
aksrt_write($to_abs, $text, $dry);
}
$scan_roots = [
$root . '/inc/helpers',
$root . '/inc/core-hooks',
$root . '/inc/modules',
$root . '/templates',
$root . '/tools',
];
$scan_files = [
$root . '/functions.php',
$root . '/inc/bootstrap.php',
$root . '/inc/core-hooks.php',
$root . '/uninstall.php',
$root . '/header.php',
$root . '/footer.php',
$root . '/index.php',
$root . '/single.php',
$root . '/page.php',
$root . '/archive.php',
$root . '/search.php',
$root . '/category.php',
$root . '/tag.php',
$root . '/author.php',
$root . '/404.php',
$root . '/home.php',
$root . '/front-page.php',
$root . '/comments.php',
$root . '/sidebar.php',
$root . '/image.php',
$root . '/go.php',
$root . '/slim-forum.php',
$root . '/archive-resources.php',
];
$php_files = $scan_files;
foreach ($scan_roots as $dir) {
if (!is_dir($dir)) {
continue;
}
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
foreach ($rii as $file) {
if ($file->isFile() && str_ends_with($file->getFilename(), '.php')) {
$php_files[] = $file->getPathname();
}
}
}
$php_files = array_values(array_unique($php_files));
$rewritten = 0;
foreach ($php_files as $abs) {
if (!is_file($abs)) {
continue;
}
$rel = str_replace('\\', '/', substr($abs, strlen($root) + 1));
if (str_starts_with($rel, 'tools/build-psr4-map.php')
|| str_starts_with($rel, 'tools/psr4-migrate.php')
|| str_starts_with($rel, 'tools/psr4-map/')) {
continue;
}
if (str_starts_with($rel, 'src/')) {
continue;
}
$orig = (string) file_get_contents($abs);
$next = aksrt_rewrite_refs($orig, $rep);
if ($next !== $orig) {
aksrt_write($abs, $next, $dry);
$rewritten++;
}
}
echo "Reference rewrites in non-src PHP: {$rewritten} files\n";
// Helper pure-class files become stubs after class move — rewrite domain-model/shortcodes if they still have class bodies (migrator already wrote src copies).
// After apply, delete old type sources and helper class-only file.
$helper_pure = [
'inc/helpers/class-aksrt-nav-walker.php',
];
if (!$dry) {
foreach (array_keys($old_type_paths) as $rel) {
$abs = $root . '/' . $rel;
if (is_file($abs)) {
unlink($abs);
}
}
foreach (array_keys($proc_moves) as $rel) {
$abs = $root . '/' . $rel;
if (is_file($abs)) {
unlink($abs);
}
}
foreach ($helper_pure as $rel) {
$abs = $root . '/' . $rel;
if (is_file($abs)) {
unlink($abs);
}
}
// helpers that still contain only moved classes: strip by rewriting shortcodes/domain-model to empty require-safe stubs if class was extracted.
foreach (['inc/helpers/aksrt-shortcodes.php', 'inc/helpers/aksrt-domain-model.php'] as $rel) {
$abs = $root . '/' . $rel;
if (!is_file($abs)) {
continue;
}
$t = (string) file_get_contents($abs);
// If file still has class keyword for types we moved, replace with comment stub.
if (preg_match('/\b(class|trait|interface)\s+/', $t)) {
file_put_contents(
$abs,
"<?php\n/**\n * Procedural helpers previously co-located with classes (now under src/AKSRT).\n *\n * @package AKSRT\n */\n\ndefined('ABSPATH') || exit;\n"
);
}
}
// Prune empty dirs under inc/classes.
$classes = $root . '/inc/classes';
if (is_dir($classes)) {
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($classes, FilesystemIterator::SKIP_DOTS),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $file) {
if ($file->isDir()) {
@rmdir($file->getPathname());
} else {
echo 'leftover file: ' . $file->getPathname() . "\n";
}
}
@rmdir($classes);
}
} else {
echo '[dry] would delete ' . count($old_type_paths) . " old type paths + procedural + prune inc/classes\n";
}
$lookup = [];
foreach ($entries as $e) {
$lookup[$e['old']] = $e['new_fqcn'];
}
$auth_fq = $lookup['AKSRT_Auth_Service'] ?? 'AKSRT\\Auth\\Service';
$settings_fq = $lookup['AKSRT_Settings'] ?? 'AKSRT\\Settings\\Settings';
$bootstrap = <<<PHP
<?php
/**
* AKSRT Theme Bootstrap Loader
*
* Helpers + procedural modules + core hooks.
* Domain classes load via Composer PSR-4 (src/AKSRT → AKSRT\\).
*
* @package AKSRT
* @version 3.4.0
*/
defined('ABSPATH') || exit;
// ============================================================
// Stage 1: helpers (must load before runtime that calls them)
// ============================================================
require_once AKSRT_DIR . '/inc/helpers/aksrt-icons.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-domain-model.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-template-tags.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-frontend-tags.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-flow.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-homepage.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single-components.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-yiyan.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-single-render.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-archive.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-archive-filters.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-comments.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-forum.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-slider.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-vip.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-auth-ui.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-i18n-switch.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-posts-renderer.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-resource.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-pay.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-coupon-order.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-credits.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-null.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-identity.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-rewards.php';
require_once AKSRT_DIR . '/inc/helpers/menu-decoration.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-transactions.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-commerce.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-dashboard.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-center.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-user-home.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-shortcodes.php';
// ============================================================
// Stage 2: procedural modules (not PSR-4 types)
// ============================================================
require_once AKSRT_DIR . '/inc/modules/captcha.php';
require_once AKSRT_DIR . '/inc/modules/user-hub.php';
require_once AKSRT_DIR . '/inc/modules/user-notifications.php';
require_once AKSRT_DIR . '/inc/modules/creator-revenue.php';
require_once AKSRT_DIR . '/inc/modules/widgets-register.php';
// ============================================================
// Stage 3: core hooks
// ============================================================
require_once AKSRT_DIR . '/inc/core-hooks.php';
// ============================================================
// Stage 4: auth service global hooks
// ============================================================
if (class_exists(\\{$auth_fq}::class)) {
\\\\{$auth_fq}::init();
}
// ============================================================
// Stage 5: email verification backfill
// ============================================================
add_action('init', function () {
if (defined('AKSRT_NO_EMAIL_GATE') && AKSRT_NO_EMAIL_GATE) {
return;
}
if (!class_exists(\\{$auth_fq}::class) || !class_exists(\\{$settings_fq}::class)) {
return;
}
if (!\\\\{$settings_fq}::registration_requires_email_verification()) {
return;
}
if (get_option('aksrt_email_verification_backfill_done')) {
return;
}
if (!is_admin() && !(defined('DOING_CRON') && DOING_CRON)) {
return;
}
\\\\{$auth_fq}::backfill_legacy_users_as_verified();
}, 5);
add_action('aksrt_email_verification_backfill_batch', function (\$offset = 0) {
if (class_exists(\\{$auth_fq}::class)) {
\\\\{$auth_fq}::run_async_backfill_batch((int) \$offset);
}
}, 10, 1);
// ============================================================
// Stage 6: settings migration stub (admin only)
// ============================================================
add_action('admin_init', function () {
}, 5);
PHP;
// Fix accidental double backslashes from heredoc interpolation mess.
$bootstrap = str_replace(['\\\\' . $auth_fq, '\\\\' . $settings_fq, '\\{' ], ['\\' . $auth_fq, '\\' . $settings_fq, '{'], $bootstrap);
// Cleaner: rebuild bootstrap without broken escapes.
$bootstrap = "<?php\n"
. "/**\n * AKSRT Theme Bootstrap Loader\n *\n"
. " * Helpers + procedural modules + core hooks.\n"
. " * Domain classes load via Composer PSR-4 (src/AKSRT → AKSRT\\).\n"
. " *\n * @package AKSRT\n * @version 3.4.0\n */\n\n"
. "defined('ABSPATH') || exit;\n\n"
. "// Stage 1: helpers\n";
$helpers = [
'aksrt-icons.php',
'aksrt-domain-model.php',
'aksrt-template-tags.php',
'aksrt-frontend-tags.php',
'aksrt-flow.php',
'aksrt-homepage.php',
'aksrt-single-components.php',
'aksrt-single.php',
'aksrt-yiyan.php',
'aksrt-single-render.php',
'aksrt-archive.php',
'aksrt-archive-filters.php',
'aksrt-comments.php',
'aksrt-forum.php',
'aksrt-slider.php',
'aksrt-vip.php',
'aksrt-auth-ui.php',
'aksrt-i18n-switch.php',
'aksrt-posts-renderer.php',
'aksrt-resource.php',
'aksrt-pay.php',
'aksrt-coupon-order.php',
'aksrt-credits.php',
'aksrt-null.php',
'aksrt-identity.php',
'aksrt-rewards.php',
'menu-decoration.php',
'aksrt-transactions.php',
'aksrt-commerce.php',
'aksrt-user-dashboard.php',
'aksrt-user-center.php',
'aksrt-user-home.php',
'aksrt-shortcodes.php',
];
foreach ($helpers as $h) {
$bootstrap .= "require_once AKSRT_DIR . '/inc/helpers/{$h}';\n";
}
$bootstrap .= "\n// Stage 2: procedural modules\n";
foreach (['captcha.php', 'user-hub.php', 'user-notifications.php', 'creator-revenue.php', 'widgets-register.php'] as $m) {
$bootstrap .= "require_once AKSRT_DIR . '/inc/modules/{$m}';\n";
}
$bootstrap .= "\n// Stage 3: core hooks\n";
$bootstrap .= "require_once AKSRT_DIR . '/inc/core-hooks.php';\n\n";
$bootstrap .= "// Stage 4: auth service hooks\n";
$bootstrap .= "if (class_exists(\\{$auth_fq}::class)) {\n\t\\{$auth_fq}::init();\n}\n\n";
// The above still has escape issues - build with concatenation only:
$bootstrap = "<?php\n/**\n * AKSRT Theme Bootstrap Loader\n *\n * Helpers + procedural modules + core hooks.\n * Domain classes load via Composer PSR-4 (src/AKSRT).\n *\n * @package AKSRT\n * @version 3.4.0\n */\n\ndefined('ABSPATH') || exit;\n\n";
$bootstrap .= "// Stage 1: helpers\n";
foreach ($helpers as $h) {
$bootstrap .= "require_once AKSRT_DIR . '/inc/helpers/{$h}';\n";
}
$bootstrap .= "\n// Stage 2: procedural modules\n";
foreach (['captcha.php', 'user-hub.php', 'user-notifications.php', 'creator-revenue.php', 'widgets-register.php'] as $mod) {
$bootstrap .= "require_once AKSRT_DIR . '/inc/modules/{$mod}';\n";
}
$bootstrap .= "\n// Stage 3: core hooks\nrequire_once AKSRT_DIR . '/inc/core-hooks.php';\n\n";
$bootstrap .= "// Stage 4: auth service hooks\n";
$bootstrap .= 'if (class_exists(\\' . $auth_fq . '::class)) {' . "\n";
$bootstrap .= "\t\\" . $auth_fq . "::init();\n}\n\n";
$bootstrap .= "// Stage 5: email verification backfill\n";
$bootstrap .= "add_action('init', function () {\n";
$bootstrap .= "\tif (defined('AKSRT_NO_EMAIL_GATE') && AKSRT_NO_EMAIL_GATE) {\n\t\treturn;\n\t}\n";
$bootstrap .= "\tif (!class_exists(\\" . $auth_fq . '::class) || !class_exists(\\' . $settings_fq . "::class)) {\n\t\treturn;\n\t}\n";
$bootstrap .= "\tif (!\\" . $settings_fq . "::registration_requires_email_verification()) {\n\t\treturn;\n\t}\n";
$bootstrap .= "\tif (get_option('aksrt_email_verification_backfill_done')) {\n\t\treturn;\n\t}\n";
$bootstrap .= "\tif (!is_admin() && !(defined('DOING_CRON') && DOING_CRON)) {\n\t\treturn;\n\t}\n";
$bootstrap .= "\t\\" . $auth_fq . "::backfill_legacy_users_as_verified();\n}, 5);\n\n";
$bootstrap .= "add_action('aksrt_email_verification_backfill_batch', function (\$offset = 0) {\n";
$bootstrap .= "\tif (class_exists(\\" . $auth_fq . "::class)) {\n";
$bootstrap .= "\t\t\\" . $auth_fq . "::run_async_backfill_batch((int) \$offset);\n\t}\n}, 10, 1);\n\n";
$bootstrap .= "add_action('admin_init', function () {\n}, 5);\n";
aksrt_write($root . '/inc/bootstrap.php', $bootstrap, $dry);
$composer_path = $root . '/composer.json';
$composer = json_decode((string) file_get_contents($composer_path), true, 512, JSON_THROW_ON_ERROR);
$composer['autoload'] = [
'psr-4' => [
'AKSRT\\' => 'src/AKSRT/',
],
];
$composer['description'] = 'AKSRT WordPress Theme';
$json = json_encode($composer, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . "\n";
aksrt_write($composer_path, $json, $dry);
// functions.php must require composer autoload (already does) — ensure fatal if missing for theme classes.
if (!$dry) {
$fn = (string) file_get_contents($root . '/functions.php');
// Already rewritten class names. Optionally strengthen vendor require message.
if (!str_contains($fn, 'vendor/autoload.php')) {
fwrite(STDERR, "functions.php missing vendor/autoload.php require\n");
}
}
echo "Done.\n";
exit(($failed && !$dry) ? 1 : 0);