2014-12-07 3 views
2

서비스 로케이터 또는 종속성 객체를 사용자 정의 클래스에서 얻으려면 어떻게해야합니까?Phalcon의 클래스에서 DI 가져 오기

class CustomerHelper extends Phalcon\Tag 
{ 

} 

과 확장 클래스

예로서

+0

을 대신 왜 직접'flash' 서비스를 주입하지, 서비스 로케이터를 주입? –

+0

어떻게 그 일을 할 수 있습니까? – Lock

+0

설명서에 모두 나와 있습니다. http://docs.phalconphp.com/en/latest/reference/di.html –

답변

0

사용 플러그인 사용자 정의 함수에서 사용하기 위해 flash 서비스를받을 필요가 :

나는이

<?php 

use Phalcon\Mvc\User\Plugin, Phalcon\Tag; 

class ClassName extends Plugin 
{ 
    public function yourMethod() 
    { 
     $this->flash->error('msg'); 
     $this->flash->success('msg'); 
    } 
} 

희망 이 문제가 해결되었습니다 ...

2

당신은 항상 클래스의 DI를 얻기 위해이 정적 인 방법을 사용할 수 있습니다 : 당신이 Phalcon의 \ 태그를 확장 할 경우이 또한 정적 맥락에서 $this->getDI() 또는 self::getDI()을 사용할 수 있습니다

$di = Phalcon\DI::getDefault(); 

.

당신은 여기에 더 많은 예제를 볼 수 있습니다 http://docs.phalconphp.com/en/latest/reference/di.html

+0

감사합니다. 만약 내가'$ di = Phalcon \ DI :: getDefault(); $ messages = $ di-> get ("flash") -> getMessages();', 작동하지만'$ this-> getDI()'또는'self :: getDI()'를 사용하면' 객체가 아닌 객체에서 get() 함수를 호출하십시오. – Lock

+0

그러면 응용 프로그램이 시작될 때'Phalcon \ Tag :: setDI ($ di)'를 추가해야합니다. – zsilbi

관련 문제