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

时间:2011-03-03 09:53:15

标签: php codeigniter rollout

说明

我正在使用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,production),系统将为当前用户提供适用的功能。

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

if ($feature_array["feature A"])
{
   /* run the code for feature A */
}

尽管如此,如果该功能已推广给所有用户,则此代码不再是必需的,但仍会保留在那里。

我的问题

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

然后您可以在控制器/模型中找出业务逻辑中的相应功能。

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

(从头开始做相当多的工作是正确的,但取决于你想要它的可扩展性,这可能是值得做的。)

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