Files
wordpress-theme-aksrt/tools/adr-classes-domain-placement.md
T
kate522 9c309b4c7f refactor(classes): split oversize modules + bootstrap hygiene
- Trait-split content-pay, vip-service, balance-service, order-repository
- Procedural split of user module into user-parts/*
- Split scripts enqueue_public into part-1b/1c; settings bulk trait
- Bootstrap: explicit notifications, widgets glob-only, home-modules init
- ADR: freeze domain placement for pay/revenue/notify boundaries
2026-07-17 11:42:29 +08:00

2.1 KiB

ADR: Domain folder placement for inc/classes

Status

Accepted (2026-07-17)

Context

After moving root class files into domain folders, freeze placement for boundary types so later moves are intentional.

Decision

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

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/.

Out of scope

PSR-4 class namespaces; class renames.