Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.
Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)
Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
(dropped 3 stale entries, added the 17 missing ones)
Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
when it is empty
Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.
Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.5 KiB
3.5 KiB
ADR: Domain folder placement + PSR-4 namespaces for theme types
Status
Accepted (2026-07-17); updated 2026-08-02 for Composer PSR-4 root flatten to src/.
Context
Domain folders were frozen after the root→domain move. Theme types then migrated from global JIO_* + manual require_once to real PHP namespaces under src/ 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 |
| Orders, gateways, coupon, charge-card, revenue, creator-revenue, withdrawal, rebate, discount, 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 |
PSR-4 layout
- Composer:
"Jio\\": "src/" - Namespace
Jio\{Domain}\…↔ pathsrc/{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(Jio\Auth\OAuth) — no separateoauth/tree - Do not move
TopicPay/PlateFollowPayintoContentwithout updating this ADR CreatorRevenueandWeChatNotifystay underPayment
Loader
functions.phploadsvendor/autoload.php(Composer: third-party + theme PSR-4)- Immediately after, canary
class_exists(\Jio\Core\DomainModel::class)— if missing,wp_diewithcomposer install/composer dump-autoload -o(stalevendor/after PSR-4 cutover is the common failure) inc/bootstrap.phploads helpers + procedural modules (inc/modules/*) + core-hooks only- Singleton
init()remains infunctions.phpusing FQCNs
Deploy note: vendor/ is gitignored. After pull/upload, run composer install --no-dev --optimize-autoloader (or at least composer dump-autoload -o) in the theme root so autoload_psr4 includes "Jio\\": ["…/src"].
Procedural (not PSR-4)
inc/helpers/*function librariesinc/modules/*(captcha, user-hub/parts, user-notifications, widgets-register, …)inc/core-hooks.php(+ parts)
The one-shot tools/build-psr4-map.php migrator (and tools/psr4-map/ artifacts) were removed when inc/classes was deleted — they scanned the old tree and cannot run anymore.
Out of scope
- Dual-read
class_aliasshims for oldJIO_*global names (rewrite references instead) - Converting all helpers to classes