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
    );

アプリケーションのユーザーはグループ (アルファ、ベータ、プロダクション) に分割され、システムは現在のユーザーが該当する機能を利用できるようにします。

「適用可能な機能を利用可能にする」のこの部分は、次のような(醜い)構造で行うことを考えています。

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

ただし、その構成では、機能がすべてのユーザーにロールアウトされた場合、このコードは不要になりますが、まだそこに残っています.

私の質問

この種の機能のソリューション/標準セットアップ/ライブラリはありますか?機能が完全に展開されたときに、これらの「if ステートメント」に戻って削除する必要がなくなりますか?

4

2 に答える 2

0

私は個人的に役割ベースの認証システムの開発を検討したいと思います

すでに実稼働環境にあるかどうかはわかりませんが、基本的にはロールを含むテーブルを使用し、各メンバーに特定のロール(または必要に応じてユーザーレベル)を割り当てます。

次に、コントローラー/モデルのビジネスロジックに適切な機能を追加することができます。

機能がベータ段階を通過すると、すべての役割を更新して、アクセスできるようにすることができます。

(正しく行うのは最初からかなりの作業ですが、必要な拡張性によっては、実行する価値がある場合があります)。

ACLを検討することもできます-CIにはいくつかの既存のソリューションがあります。

于 2011-03-03T11:51:09.000 に答える