// +---------------------------------------------------------------------- declare(strict_types=1); namespace app\appmall\controller; use think\App; use ywxapp\controller\BackendBase; use ywxapp\library\AdminAuth; /** * 应用市场(中心站服务端)后台基类。 * * appmall 已由插件(addon/appmall)迁移为普通应用(app/appmall),对外 URL 前缀仍为 /appmall。 * 但 BackendBase 的「插件后台」判定依赖 addon\ 命名空间前缀(static::class / getNamespace), * 迁移后不再命中,会导致两处行为丢失,故由本类补齐: * 1) 鉴权:BackendBase 构造函数原本据此把容器 auth 绑成 AdminAuth;本类显式绑定,等价插件后台地基; * 2) 视图:覆写 isAddonContext()/currentAddon(),让基类把视图根切到 app/appmall/view/backend/ * 并复用「核心后台 layout」外壳(与迁移前完全一致)。 */ abstract class AppmallBackend extends BackendBase { public function __construct(App $app) { // 显式绑定后台鉴权实例(插件后台由 BackendBase 的 addon\ 判定完成,此处接管) $app->bind('auth', AdminAuth::class); parent::__construct($app); } /** * 视作插件上下文,复用基类的插件视图目录切换与 layout 复用逻辑。 */ protected function isAddonContext(): bool { return true; } /** * 当前「插件名」,用于皮肤覆盖层解析(appmall 自带视图,无非默认皮肤时自动回退)。 */ protected function currentAddon(): string { return 'appmall'; } }