質問

やあみんな、私は、Zendで始まり、それが(そこに取得)の動作方法を理解しようとしている、とACLクラスで、人々が一つのファイルにすべてのロールとリソースを宣言しているようですよ。

。今、私にはこれは人だけで、基本的なユーザー、またはサイトにだけでも、ゲスト/訪問者として、システムリソースの浪費のビットでログインしている場合はそうです。だから私は考えていたそれは、現在のユーザーの役割/リソース上の役割に依存し、異なるクラスを持つことが可能です。

私の現在の考えは、ブートストラップに役割のスイッチ/ケースを使用し、ロール名(例のために、「ビジター」=>「Model_VisitorAcl」、「ユーザー」=>「Model_UserAclに基づいて個々のACLをクラスをロードすることです'と 『管理』 => 『Model_AdminAcl』)、対応するクラスファイルでそれぞれ。そして、クラスファイル内の各1のために何かをします。これは働いており、現在私は1つにすべての私の「管理者」のACLを定義することができます(管理者・利用者・訪問者の権利の階層構造を通じてバックトラック)、その後、「ユーザー」に「ユーザー」持っている - 。「訪問者」の役割とリソースを

私は「ユーザー」と「管理者」のためにそれを変更する必要があるだろう "ユーザーの役割の権限を変更したいかのように

しかし、これは、最善の方法を思えません。これは、2つの役割とOBVない問題であるが、より大きなシステムでは、それは明らかにされています。

だから私のようなものを試してみました。

class Model_AdminAcl extends Zend_Acl{
  function __construct(){
    $d = new Model_UserAcl();

    //defining the admin role and permissions, with inheritance from the roles 
    //set in Model_UserAcl
  }
}

これロールに「ユーザー」を設定し、実行するための機能を構築Model_UserAclを試してみて、取得するには、しかし、これは動作するようには思えない、メッセージの親ロールID 『ユーザーと「キャッチされない例外『Zend_Acl_Role_Registry_Exception』を投げ』が存在しません " " エラーます。

次のステップをいただきましたので?個々には、各モジュールのファイルが含まれ、必要に応じて必要なクラスがそれらを含めていた?

または私はちょうどこの問題にmolehills外の山を作るのですか?

おかげで、 PSY

役に立ちましたか?

解決

[OK]を、私は(私が思う金曜日の脳frazzle)最初の場所でこれをしようとするとは思いませんでした理由を確認してください、これを解決していない

私は、独自の機能へのコンストラクタの内容を入れて、その後、コンストラクタでその関数を呼び出して、クラスがその下のクラスから継承します。

//Model/VisitorAcl.php
class Model_VisitorAcl extends Zend_Acl{
  function __construct(){
    $this->addVisitorRules();
  }

  function addVisitorRules(){
    //adding the role and permissions
  }
}

//Model/UserAcl.php
class Model_UserAcl extends Model_VisitorAcl{
  function __construct(){
    $this->addVisitorRules();
    $this->addUserRules();
  }

  function addUserRules(){
    //adding the role and permissions
  }
}

//Model/AdminAcl.php
class Model_AdminAcl extends Model_AdminAcl{
  function __construct(){
    $this->addVisitorRules();
    $this->addUserRules();
    $this->addAdminRules();
  }

  function addAdminRules(){
    //adding the role and permissions
  }
}

これは私がそれについて行くべき道ではない場合、その後、すべての手段によって、私に知らせてくださいます。

サイ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top