3

解释

我正在使用 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 语句”?

4

2 回答 2

3

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

于 2011-03-03T12:33:08.190 回答
0

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

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

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

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

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

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

于 2011-03-03T11:51:09.000 回答