Zend Framework - 您的资源插件

时间:2011-01-18 11:19:35

标签: php zend-framework plugins port

已创建资源插件以使用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的具体方法,这究竟是怎么做的?

我试着写一个这样的模型:

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插件资源制作的模型相同。

1 个答案:

答案 0 :(得分: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);
    }
}