Codeigniter:如何向受控(测试版)用户组推出功能?

Posted

技术标签:

【中文标题】Codeigniter:如何向受控(测试版)用户组推出功能?【英文标题】:Codeigniter: how do I roll out features to controlled (beta) groups of users? 【发布时间】:2011-03-03 09:53:15 【问题描述】:

说明

我正在使用 CodeIgniter 构建一个 Web 应用程序。由于我不断添加新功能,其中一些可能不稳定。因此,我希望有一种方法可以首先将这些功能“推广”到指定的组。如果一切顺利,我会为整个用户社区提供该功能。

我现在考虑的解决方案包括一个配置文件,其中包含每个发布组的功能数组:

alpha = array(
    "feature A" => true,
    "feature B" => true,
    "feature C" => true
    );

beta = array(
    "feature A" => true,
    "feature B" => true,
    "feature C" => false
    );

production = array(
    "feature A" => false,
    "feature B" => false,
    "feature C" => false
    );

然后,我的应用程序中的用户被分成组(alpha、beta、生产),系统将为当前用户提供适用的功能。

“提供适用的功能”的这一部分我现在正在考虑使用以下(丑陋的)构造:

if ($feature_array["feature A"])

   /* run the code for feature A */

不过,这种结构的问题是,如果向所有用户推出该功能,则不再需要此代码,但仍会保留在那里。

我的问题

是否有此类功能的解决方案/标准设置/库,并避免我在功能完全推出时不得不返回并删除这些“if 语句”?

【问题讨论】:

codeigniter.com/forums/viewthread/154529 可能有用 【参考方案1】:

这是非常基本的,但请查看Turnstyles。

【讨论】:

@phil 那个 repo 和用户好像已经走了,你知道它是否可能已经搬到别的地方了吗?【参考方案2】:

我个人希望开发一个基于角色的身份验证系统

不确定是否已经在生产中,但基本上你会使用一个包含角色的表,为每个成员分配一个特定的角色(或用户级别,如果你愿意的话)

然后您可以在控制器/模型中的业务逻辑中提供适当的功能。

一旦某个功能通过了 beta 阶段,您就可以更新每个角色的角色,以便他们可以访问。

(从头开始做正确的工作需要大量的工作,但取决于您希望它的可扩展性,它可能值得做)。

您也可以考虑ACL - CI 有several 现有的解决方案。

【讨论】:

以上是关于Codeigniter:如何向受控(测试版)用户组推出功能?的主要内容,如果未能解决你的问题,请参考以下文章

检查 codeigniter 查询错误,而不是向用户显示它们

使用 Codeigniter,我如何向其他开发人员隐藏 Paypal 凭据?

如何使用 Codeigniter 通过 cc 发送多封电子邮件?

Codeigniter 抛出错误并且不向用户发送确认邮件

图像识别自动控制受控软件给用户带来的好处

如何测试我的 MySQL 更新查询在 CodeIgniter 中是不是成功? [复制]