2011-01-18 8 views
1

複数のクライアント間でメッセージを交換するためにRealplexorクラスを使用するリソースプラグインを作成しました。これはチャットに適しています。このプラグイン設定application.iniのために規定されています。彼は次与えZend Framework - あなたのリソースプラグイン

 
$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を使用する必要があります私のプロジェクトのための特定のメソッドを持つモデル、どのように正確には何ですか?

私はこのようなモデルを書き込もうとしました:

 
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); 
    } 
} 

しかし、あなたがコントローラでこのモデルのオブジェクトを作成した場合、それが初期化されていない理由、それは次のとおりです。

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

問題:

 
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); 
    } 
}