2012-11-21 4 views
1

이미 다른 클래스를 자홍색으로 다시 쓰고있는 클래스를 다시 작성하는 데 필요한 구성은 무엇입니까?Magento - 다시 쓰기 계층

예를 들어

는 일을 지역 사회의 모듈이 다음

<models> 
    <modulea> 
     <adminhtml> 
      <rewrite> 
       <session>CompanyA_ModuleA_Model_Adminhtml_Session</session> 
      </rewrite> 
     </adminhtml> 
    </modulea> 
</models> 

내가 커뮤니티 모듈을 다시하고 싶은 나는 작동하지 않는 다음 코드를 시도하고있다 :

<models> 
    <moduleb> 
     <class>CompanyB_ModuleB_Model</class> 
    </moduleb> 
    <modulea> 
      <rewrite> 
       <adminhtml_session>CompanyB_ModuleB_Model_Adminhtml_Session</adminhtml_session> 
      </rewrite> 
    </modulea> 
</models> 

무엇 이 문제가 있습니다.

+0

이것은 올바른 구문이 될 수 없습니다. xpath는'global/models/adminhtml/rewrite/session'이어야합니다 (거기에는 modulea 나 moduleb가 없습니다). – benmarks

답변

1

재 작성 XML 구문에주의하십시오. 오류가 있습니다. 그것은 좋아한다 :

<modulea> 
     <adminhtml> 
      <rewrite> 
       <adminhtml_session>CompanyA_ModuleA_Model_Adminhtml_Session</session> 
      </rewrite> 
     </adminhtml> 
    </modulea> 

<moduleb> 
     <adminhtml> 
      <rewrite> 
       <adminhtml_session>CompanyB_ModuleB_Model_Adminhtml_Session</session> 
      </rewrite> 
     </adminhtml> 
    </moduleb> 

다음 당신이해야합니다이 좋은 순서대로 좋은 PHP 클래스를 확장합니다.

의 companyâ 파일 : 예를 들어, 당신은의 companyâ가 CompanyB를 다시 작성/확장하려는 경우

class CompanyA_ModuleA_Model_Adminhtml_Session extends Mage_Adminhtml_Model_Session { 

CompanyB 모델 PHP 파일 :

class CompanyB_ModuleB_Model_Adminhtml_Session extends CompanyA_ModuleA_Model_Adminhtml_Session { 

마지막 일이 다시 쓰기가에서 수행 할 수 있는지 좋은 순서 (Mage::getModel('adminhtml/session')을 수행 할 때 COmpanyA 클래스가 아닌 CompanyB 클래스를 검색하려는 경우) 어떤 모듈이 어느 모듈에 종속되는지 정의해야합니다. 너는 app/etc/modules/Company_Module.xml 파일에서 그렇게한다.

는 A 사에 대한 추가

<depends> 
    <Mage_Adminhtml /> 
</depends> 

이 회사 B에 대한 추가

<depends> 
    <CompanyA_ModuleA /> 
</depends> 
+0

소문자 d가 ''이어야합니다. – benmarks

+0

가리켜 주셔서 감사합니다. 편집 된 –