Zend Framework birkaç ACL birleştirme nasıl?

0 Cevap php

Ben bu (her modül için bir tane) gibi Zend_Acl nesneler, birkaç örneği var:

class My_Acl_Module1 extends My_Base_Acl
{
    public function __construct()
    {
        parent::__construct();
        $this->addResource('News_Model_Entry');
        $this->deny('guest', 'News_Model_Entry', 'index', new News_Model_Acl_Assert_CategoryPrivate());
    }       
}

class My_Base_Acl extends Zend_Acl 
{
    public function __construct()
    {
              $this->addRole('guest');
    }
}

Navigasyon konteyner kullanmak için bir ACL nesne onları birleştirmek nasıl?

Edit

Bazı daha fazla bilgi:

  • Ben model bazlı kaynakların lehine kontrolör kaynaklarını kullanmayın (modeller, formlar uygulamak Zend_Acl_Resource_Interface). Bunların hepsi bir yöntem var isAllowed()
  • Ben (vb ayrı modeller, yapılandırmaları, yolları) modüler dizin ve yeniden modülleri kullanın
  • Benim uygulama (gerçek zamanlı yapı zaten çözümlenir) yüklü tüm modülleri, kontrolörler, aksiyon bilir

Yani bu düzeni takip ve her modül için ACL ayırmak için bir yol arıyorum. Acl her zaman gerekli değildir - bu bir kaybıdır çünkü, uygulama kaynağı kullanmak istemiyorum.

Ben gerçekten gerekli tek modül belirli ACL başlatır bir eylem yardımcım var. Ama bazen (Ben Gezinme görünümü yardımcı veya denetleyici eklentisi için geçmek istiyorum zaman örneğin) de mevcut global uygulama ACL var istiyorum.

My module ACL classes have all just one method: init().
Dirty solution I see, is to parse the source classes and merge the files into one method for new class.

Herhangi bir öneriniz?

0 Cevap