>

UserManager를 확장하는 서비스가 있으므로 다음과 같이하면됩니다 :

$message = \Swift_Message::newInstance()
            ->setSubject('~')
            ->setFrom('~')
            ->setTo('~')
            ->setBody('~', 'text/html');
        $this->get('mailer')->send($message);

오류가 발생합니다 :

Fatal error: Call to undefined method My\MyBundle\Service\ServiceClass::get()

이것은 swiftmailer를 여기에 주입해야하기 때문입니다. 어떻게? (일반적으로 서비스 클래스는 'Generic'을 확장하므로 신속한 메일러가 포함됩니다.)


  • 답변 # 1

    어떤 종류의 서비스 파일을 사용 하느냐에 따라 귀하가 말한 것처럼 직접 서비스에 파일을 삽입해야합니다.

    XML :

    <services>
            <service id="sample.service" class="%sample.service.class%">
                <argument type="service" id="mailer" />
            </service>
    </services>
    
    

    YAML :

    services:
        sample.service:
            class:     %sample.service.class%
            arguments: [@mailer]
    
    

    이렇게하면 생성자에서 서비스를 간단히 얻을 수 있습니다. 또는 당신이 정말로 원한다면, 당신은 service_container 를 주입 할 수 있습니다 . 하지만 필요한 서비스를 주입하기 만하면됩니다.

    service_container 의 주입  동적 서비스 호출이 필요한 경우에만 필요합니다.

  • 답변 # 2

    services.yml (symfony 4 예)

    mailer:
        class: \Swift_Mailer
    myClass:
        class: x\x
        arguments:
            - "@mailer"
    
    

  • 이전 node.js - 각도에서 뮤티 이미지 양식 제출 후 req가 정의되지 않았습니다
  • 다음 javascript - Google지도를 사용하여 불규칙한 동심원 그리기