2011-01-18 4 views
1

Realplexor 클래스와 함께 작동하도록 리소스 플러그인을 만들었습니다.이 플러그인을 사용하여 여러 클라이언트간에 메시지를 교환하므로 채팅에 적합합니다. 이 플러그인 설정 application.ini에 대한 처방입니다. 그는 다음과 같은 수 있습니다젠드 프레임 워크 - 리소스 플러그인

 
$realplexorObject = Zend_Registry::get('realplexor'); 
print_r ($realplexorObject); 
die(); 

: 시험에 대한 컨트롤러는 다음과 같은 코드를 작성

 
Dklab_Realplexor Object 
(
    [_timeout:Dklab_Realplexor:private] => 5 
    [_host:Dklab_Realplexor:private] => rpl.newchat.com 
    [_port:Dklab_Realplexor:private] => 10010 
    [_identifier:Dklab_Realplexor:private] => identifier 
    [_login:Dklab_Realplexor:private] => 
    [_password:Dklab_Realplexor:private] => 
    [_namespace] => Chat_ 
) 

즉 Dklab_Realplexor 객체 생성 및 Zend_Registry에 저장하지만 내가가 쓰고 싶은 그와 함께 일하는 것이있다 그 클래스 메서드 Dklab_Realplexor를 사용해야하는 내 프로젝트에 대한 구체적인 방법을 가진 모델, 정확히 어떻게합니까?

 
$realplexorMessageModel = new Application_Model_Realplexor_Message(); 
print_R ($realplexorMessageModel); 
die(); 

문제 : 당신이 컨트롤러에서이 모델의 개체를 만드는 경우가 초기화되지 않는 이유, 그것이,

 
class Application_Model_Realplexor_Message extends Dklab_Realplexor 
{ 
    public function __construct() { 
     return Zend_Registry::get('realplexor'); 
    } 

    public function post ($text, $fromUser = 0, $fromOperator = 0) { 
     $this->send("Alpha", $text); 
    } 
} 

그러나 :

는이 같은 모델을 작성하는 시도 :

 
Application_Model_Realplexor_Message Object 
(
    [_timeout:Dklab_Realplexor:private] => 5 
    [_host:Dklab_Realplexor:private] => 
    [_port:Dklab_Realplexor:private] => 
    [_identifier:Dklab_Realplexor:private] => 
    [_login:Dklab_Realplexor:private] => 
    [_password:Dklab_Realplexor:private] => 
) 

이 플러그인 리소스와 모델을 모델과 동일한 원칙으로 만들고 싶습니다. 데이터베이스의 기존 ZF 플러그인 리소스 용으로 만들어졌습니다.

답변

0

어쩌면 당신이 시도 할 수 있습니다 :

class Application_Model_Realplexor_Message 
{ 
    protected $realplexor; 

    public function __construct() { 
     $this->realplexor = Zend_Registry::get('realplexor'); 
    } 

    public function post ($text, $fromUser = 0, $fromOperator = 0) { 
     $this->realplexor->send("Alpha", $text); 
    } 
}