ZF2 : 사용자 정의 클래스 내부에서 ServiceManager 인스턴스를 가져 오는 방법

user2033934

사용자 지정 클래스 내부에서 ServiceManager 인스턴스를 가져 오는 방법을 알아내는 데 문제가 있습니다.

컨트롤러 내부는 다음과 같습니다.

$this->getServiceLocator()->get('My\CustomLogger')->log(5, 'my message');

이제 몇 개의 독립적 인 클래스를 만들고 Zend\Log해당 클래스 내에서 인스턴스 를 검색해야합니다 . zend 프레임 워크 v.1에서는 정적 호출을 통해 수행했습니다.

Zend_Registry::get('myCustomLogger');

My\CustomLoggerZF2에서 어떻게 검색 할 수 있습니까?

제리 사라비아

사용자 정의 클래스가 ServiceLocatorAwareInterface.

ServiceManager로 인스턴스화하면 인터페이스가 구현되고 클래스에 자신을 주입합니다.

이제 수업에는 작업 중에 함께 작업 할 서비스 관리자가 있습니다.

<?php
namespace My;

use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorAwareTrait;

class MyClass implements ServiceLocatorAwareInterface{
    use ServiceLocatorAwareTrait;


    public function doSomething(){
        $sl = $this->getServiceLocator();
        $logger = $sl->get( 'My\CusomLogger')
    }
}

// later somewhere else
$mine = $serviceManager->get( 'My\MyClass' );

//$mine now has the serviceManager with in.

왜 이것이 효과가 있습니까?

이것은 컨트롤러를 언급했기 때문에 사용하고 있다고 가정하는 Zend \ Mvc의 컨텍스트에서만 작동합니다.

Zend\Mvc\Service\ServiceManagerConfigServiceManager에 이니셜 라이저를 추가 하기 때문에 작동 합니다.

$serviceManager->addInitializer(function ($instance) use ($serviceManager) {
    if ($instance instanceof ServiceLocatorAwareInterface) {
        $instance->setServiceLocator($serviceManager);
    }
});

시도해보고 무슨 일이 일어나는지 알려주세요.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

zf2 클래스에서 작동하도록 serviceManager를 얻는 방법

분류에서Dev

ZF2 : 테스트 중에 ServiceManager를 재설정하는 방법

분류에서Dev

내 엔티티 클래스에서 URL ZF2를 사용하는 방법

분류에서Dev

ZF2 테스트-serviceManager에서 무시되는 모의 객체

분류에서Dev

일치 패턴 내에서 케이스 클래스의 일치 인스턴스를 가져 오는 방법

분류에서Dev

외부 클래스 생성자에서 내부 클래스의 인스턴스를 만드는 방법

분류에서Dev

클래스 인스턴스에서 JavaScript 클래스 생성자 인수를 가져 오는 방법

분류에서Dev

Python 사용자 정의 클래스에서 외부 라이브러리를 가져 오는 방법

분류에서Dev

클래스에 속한 인스턴스 변수 중 하나에서 클래스의 특정 인스턴스를 가져 오는 방법

분류에서Dev

ZF2에 사용자 정의 인터페이스를 저장하는 가장 좋은 장소

분류에서Dev

ZF2에서 사용자 정의보기 도우미에서 HTML을 이스케이프하는 방법

분류에서Dev

다른 클래스에서 내부 클래스의 필드를 설정하고 가져 오는 방법

분류에서Dev

정의에서 클래스의 "공용"인스턴스를 얻는 방법

분류에서Dev

첫 번째 인스턴스 내부에서 두 번째 ec2 인스턴스의 퍼블릭 DNS 주소를 가져 오는 방법

분류에서Dev

첫 번째 인스턴스 내부에서 두 번째 ec2 인스턴스의 퍼블릭 DNS 주소를 가져 오는 방법

분류에서Dev

부모 클래스의 메서드 내부에서 개체의 호출 인스턴스를 가져 오는 방법은 무엇입니까?

분류에서Dev

ZF2를 사용하는 Ubuntu 14.4 시스템에서 앱 메일을 보내는 가장 좋은 방법

분류에서Dev

클래스 내부의 변수를 사용하여 클래스를 인스턴스화하는 방법

분류에서Dev

클래스 내부의 변수를 사용하여 클래스를 인스턴스화하는 방법

분류에서Dev

zf2에서 도우미 클래스를 사용하는 방법은 무엇입니까?

분류에서Dev

클래스를 사용하여 범위 내에서 텍스트를 가져 오는 방법. (for 루프 내부)

분류에서Dev

자바 스크립트에서 다른 클래스의 인스턴스를 통해 다른 클래스 내부의 메소드에 액세스하는 방법

분류에서Dev

클라우드 코드 / 자바 스크립트를 사용하여 parse.com의 2 개 클래스에서 데이터를 가져 오는 방법

분류에서Dev

C # 2 개의 클래스에서 개체 / 인스턴스의 값을 참조 / 사용 / 설정하는 방법

분류에서Dev

인스턴스에서 사용자 지정 일반 클래스의 TypeVars 가져 오기

분류에서Dev

동일한 클래스 Perl에서 클래스의 인스턴스를 사용하는 방법

분류에서Dev

이미 AsA_Worker를 사용하는 작업자 역할의 StructureMap IBus에서 인스턴스 또는 설정을 가져 오는 방법, UsingTransport <AzureServiceBus>

분류에서Dev

zf2 AuthenticationService로 사용자 세부 정보를 얻는 방법

분류에서Dev

자바 : 수퍼 클래스의 정적 메서드를 사용하여 하위 클래스의 인스턴스를 만드는 방법

Related 관련 기사

  1. 1

    zf2 클래스에서 작동하도록 serviceManager를 얻는 방법

  2. 2

    ZF2 : 테스트 중에 ServiceManager를 재설정하는 방법

  3. 3

    내 엔티티 클래스에서 URL ZF2를 사용하는 방법

  4. 4

    ZF2 테스트-serviceManager에서 무시되는 모의 객체

  5. 5

    일치 패턴 내에서 케이스 클래스의 일치 인스턴스를 가져 오는 방법

  6. 6

    외부 클래스 생성자에서 내부 클래스의 인스턴스를 만드는 방법

  7. 7

    클래스 인스턴스에서 JavaScript 클래스 생성자 인수를 가져 오는 방법

  8. 8

    Python 사용자 정의 클래스에서 외부 라이브러리를 가져 오는 방법

  9. 9

    클래스에 속한 인스턴스 변수 중 하나에서 클래스의 특정 인스턴스를 가져 오는 방법

  10. 10

    ZF2에 사용자 정의 인터페이스를 저장하는 가장 좋은 장소

  11. 11

    ZF2에서 사용자 정의보기 도우미에서 HTML을 이스케이프하는 방법

  12. 12

    다른 클래스에서 내부 클래스의 필드를 설정하고 가져 오는 방법

  13. 13

    정의에서 클래스의 "공용"인스턴스를 얻는 방법

  14. 14

    첫 번째 인스턴스 내부에서 두 번째 ec2 인스턴스의 퍼블릭 DNS 주소를 가져 오는 방법

  15. 15

    첫 번째 인스턴스 내부에서 두 번째 ec2 인스턴스의 퍼블릭 DNS 주소를 가져 오는 방법

  16. 16

    부모 클래스의 메서드 내부에서 개체의 호출 인스턴스를 가져 오는 방법은 무엇입니까?

  17. 17

    ZF2를 사용하는 Ubuntu 14.4 시스템에서 앱 메일을 보내는 가장 좋은 방법

  18. 18

    클래스 내부의 변수를 사용하여 클래스를 인스턴스화하는 방법

  19. 19

    클래스 내부의 변수를 사용하여 클래스를 인스턴스화하는 방법

  20. 20

    zf2에서 도우미 클래스를 사용하는 방법은 무엇입니까?

  21. 21

    클래스를 사용하여 범위 내에서 텍스트를 가져 오는 방법. (for 루프 내부)

  22. 22

    자바 스크립트에서 다른 클래스의 인스턴스를 통해 다른 클래스 내부의 메소드에 액세스하는 방법

  23. 23

    클라우드 코드 / 자바 스크립트를 사용하여 parse.com의 2 개 클래스에서 데이터를 가져 오는 방법

  24. 24

    C # 2 개의 클래스에서 개체 / 인스턴스의 값을 참조 / 사용 / 설정하는 방법

  25. 25

    인스턴스에서 사용자 지정 일반 클래스의 TypeVars 가져 오기

  26. 26

    동일한 클래스 Perl에서 클래스의 인스턴스를 사용하는 방법

  27. 27

    이미 AsA_Worker를 사용하는 작업자 역할의 StructureMap IBus에서 인스턴스 또는 설정을 가져 오는 방법, UsingTransport <AzureServiceBus>

  28. 28

    zf2 AuthenticationService로 사용자 세부 정보를 얻는 방법

  29. 29

    자바 : 수퍼 클래스의 정적 메서드를 사용하여 하위 클래스의 인스턴스를 만드는 방법

뜨겁다태그

보관