검색 결과 :

×

플러그인 magento 2는 무엇이며 magento 2의 인터셉터는 무엇입니까?

Magento 2는 개발자에게 다양한 사용자 정의 옵션을 제공하는 강력하고 유연한 전자 상거래 플랫폼입니다. 이러한 유연성을 가능하게 하는 주요 기능 중 하나는 인터셉터라고도 알려진 플러그인을 사용하는 것입니다. 이를 통해 개발자는 원래 코드를 변경하지 않고도 핵심 클래스의 동작을 수정할 수 있습니다.

    플러그인이란 무엇입니까?

    Magento 2에서 플러그인은 다른 클래스의 공개 메소드 실행을 가로채서 개발자가 해당 기능을 수정하거나 확장할 수 있도록 하는 클래스입니다. 플러그인은 원래 메서드와 함께 실행되는 메서드 전, 후 또는 주변을 정의하여 작동합니다. 플러그인은 원래 메소드보다 먼저 실행되며 입력 매개변수를 수정하거나 원래 메소드가 완전히 실행되는 것을 방지하는 데 사용될 수 있습니다. 플러그인은 원래 메서드 이후에 실행되며 결과에 따라 출력을 수정하거나 추가 작업을 수행하는 데 사용할 수 있습니다. 어라운드 플러그인은 원래 메소드를 래핑하고 입력 및 출력 매개변수를 모두 수정하거나 메소드 실행 전후에 추가 작업을 수행하는 데 사용할 수 있습니다.

    Magento 2에서 플러그인을 만드는 방법은 무엇입니까?

    Magento 2에서 플러그인을 생성하려면 다음 단계를 따라야 합니다.

    • Magento\Framework\Interception\AbstractInterceptor 클래스를 확장하는 새 PHP 클래스를 만듭니다.
    • 플러그인이 호출될 때 실행될 코드가 포함된 Intercept() 메서드를 구현합니다.
    • 모듈의 etc 디렉터리에 있는 di.xml 파일에서 플러그인 구성을 정의합니다.
    • di.xml 파일에 플러그인 선언을 추가하여 플러그인을 등록합니다.
    • 예를 들어 고객 등록 프로세스에 추가 유효성 검사를 추가한다고 가정해 보겠습니다. 이 경우 Magento\Customer\Model\AccountManagement 클래스의 createAccount() 메서드를 가로채고 필요한 유효성 검사 논리를 추가하는 플러그인을 생성할 수 있습니다. 구현 예는 다음과 같습니다.


      네임스페이스 Vendor\Module\Plugin; Magento\Framework\Interception\AbstractInterceptor를 사용하십시오. Magento\Framework\Interception\InterceptorInterface를 사용하십시오. Magento\Framework\App\RequestInterface를 사용합니다. Magento\Framework\App\ResponseInterface를 사용합니다. class CustomerAccountManagementPlugin Extensions AbstractInterceptor Implements InterceptorInterface { public function Intercept (\Magento\Customer\Model\AccountManagement $subject, \Closure $proceed, RequestInterface $request, ResponseInterface $response) { // 여기에 사용자 정의 유효성 검사 논리를 추가합니다. if (!$request-> getParam('agree_to_terms')) { throw new \Exception(__('이용약관에 동의하세요.')); } // 원래 메서드 호출 $result = $proceed($request, $response); // 여기에 사용자 지정 사후 처리 논리를 추가합니다. if ($result->getCustomerId()) { // 여기서 작업 수행 } return $result; } }
      
        

      이 예제에서 Intercept() 메서드는 먼저 등록 요청에 사용자 지정 유효성 검사 논리를 추가한 다음 $proceed 매개 변수를 사용하여 원래 createAccount() 메서드를 호출합니다. 원래 메서드가 실행된 후 Intercept() 메서드는 결과에 따라 추가적인 사후 처리 논리를 추가합니다.

      플러그인을 등록하려면 모듈의 etc 디렉토리에 있는 di.xml 파일에 플러그인 선언을 추가해야 합니다. 위 플러그인을 등록하는 방법의 예는 다음과 같습니다.


      
      
      
      
      

      이 예에서 플러그인 선언은 플러그인 이름, 플러그인을 구현하는 클래스, 다른 플러그인과 관련하여 플러그인이 실행되어야 하는 순서를 지정합니다. sortOrder 속성은 선택사항이지만 여러 플러그인이 실행되는 순서를 제어하는 ​​데 사용할 수 있습니다.



    Magento 2에서 플러그인을 사용하는 이유는 무엇입니까?

    플러그인은 Magento 2를 사용하는 개발자에게 다음과 같은 여러 가지 이점을 제공합니다.


    • 유연성: 플러그인을 사용하면 개발자는 원본 코드를 변경하지 않고도 핵심 클래스의 동작을 수정할 수 있으므로 특정 비즈니스 요구 사항에 맞게 Magento 2의 동작을 보다 쉽게 ​​사용자 지정할 수 있습니다.
    • 모듈성 : 플러그인을 시스템에 쉽게 추가하거나 제거할 수 있으므로 개발자는 다양한 기능과 구성을 시험해 볼 수 있습니다.
    • 상호 운용성 : 플러그인은 Magento\Framework\Interception\InterceptorInterface 인터페이스를 구현하는 모든 클래스와 작동하므로 타사 모듈을 원활하게 통합할 수 있습니다.
    • 테스트 가능성: 플러그인은 기존 코드의 실행을 가로채기 때문에 격리된 상태에서 쉽게 테스트하여 프로덕션 환경에 배포하기 전에 올바르게 작동하는지 확인할 수 있습니다.

    결론

    인터셉터라고도 알려진 플러그인은 개발자가 원본 코드를 변경하지 않고도 핵심 클래스의 동작을 수정할 수 있도록 하는 Magento 2의 강력한 기능입니다. 메서드 실행을 가로채고 추가 기능을 추가함으로써 개발자는 다른 방법으로는 달성하기 어렵거나 불가능한 사용자 정의 및 통합을 만들 수 있습니다. Magento 2로 작업하는 경우 플러그인은 개발 툴킷의 필수 도구이며 플러그인 사용법을 숙지하면 비즈니스 요구 사항을 충족하는 유연하고 모듈식이며 상호 운용 가능한 코드를 만드는 데 도움이 됩니다.

    우리를 신뢰하는 1000개 이상의 조직



    문의하기


     당신의 응답을 주셔서 감사합니다. 곧 다시 연락드리겠습니다.

    문제가 발생했습니다. 문의사항을 다시 제출해 주세요.

miniOrange 마그네토 확장
안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT
miniOrange 지원팀에 문의하세요
성공

문의 해 주셔서 감사합니다.

24시간 이내에 연락을 받지 못한 경우 언제든지 다음 이메일로 후속 이메일을 보내주세요. info@xecurify.com