di.xml에서 <환경 설정>을 동적으로 활성화 / 비활성화하는 방법은 무엇입니까?


10

현재 <preference/>di.xml 파일 중 하나에 다음 이 있습니다.

<preference for="Magento\Contact\Controller\Index\Post" type="RadTest\TestModule\Controller\Contact\Post" />

관리자 패널에 모듈에 대한 활성화 / 비활성화 구성 옵션이 있습니다. <preference>사용자 정의 구성 옵션이 사용으로 설정된 경우 에만 사용하도록 설정 하고 싶습니다 .

<preference/>모듈 구성에 따라 재정의를 동적으로 활성화 및 비활성화하는 방법은 무엇입니까?

답변:


13

구성 설정에 따라 환경 설정을 활성화 및 / 또는 비활성화 할 수 없습니다.
di.xml단지 구성입니다. 당신은 그것에 논리를 가질 수 없지만, 다른 것을 할 수 있습니다.
클래스에서 구성 플래그를 확인하고 그에 따라 조치를 취하는 조건을 가질 수 있습니다. 적어도 하나의 메서드를 재정의해야하기 때문에
클래스가 RadTest\TestModule\Controller\Contact\Post확장 되었다고 가정합니다 Magento\Contact\Controller\Index\Post.
메소드를 재정의해야한다고 가정 해 봅시다 execute.
수업에서 다음과 같이 할 수 있습니다.

namespace RadTest\TestModule\Controller\Contact;
class Post extends \Magento\Contact\Controller\Index\Post
{
    ....
    public function execute()
    {
        if (your config setting is disabled) {
            return parent::execute();
        }
        //your custom logic here
    }
}

1
이것은 실제로 내가하고있는 일이며 동적으로 비활성화 할 수있는 방법이 있다면 좋을 것이라고 생각했습니다. 이제는 할 수 없다는 것을 알고 있습니다. 고마워요! :)
크세논
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.