如何仅为少数选定的用户加载主题插件?

时间:2018-08-13 10:49:55

标签: cakephp-3.x cakephp-3.4

我有一个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]);

因此,如果同时设置了主题和插件,则用户将看到较新的版本。

如果未设置主题或插件,则用户将看到旧版本。

我的问题是:如何仅为选定的用户加载主题插件?

0 个答案:

没有答案