我有一个CakePHP 3.4应用程序,该应用程序是在几年前开发的,拥有数千名用户。
我当前正在开发此应用程序的新版本,我的客户希望在我们为其他所有人发布它之前,只有少数选定的用户可以看到它。
不确定哪种方法是正确的,所以我选择开发一个新的主题插件,该插件将覆盖一些控制器,布局,资产,路线等。
一切正常,但是现在我需要指定哪些用户应该看到较新的版本。为此,我在用户表中添加了theme
字段,并在AppController的beforeRender方法中添加了以下内容:
$theme = $this->request->session()->read("Auth.User.theme");
if ($theme !== null) {
$this->viewBuilder()->theme('Theme2');
}
要使用较新的版本,我还需要在bootstrap.php
中加载新主题:
Plugin::load('Theme2', ['bootstrap' => false, 'routes' => true, 'autoload' => true]);
因此,如果同时设置了主题和插件,则用户将看到较新的版本。
如果未设置主题或插件,则用户将看到旧版本。
我的问题是:如何仅为选定的用户加载主题插件?