Zend Framework - Ваш плагин ресурсов - PullRequest
1 голос
/ 18 января 2011

Создал плагин ресурсов для работы с классом 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 голосов
/ 29 января 2011

Может быть, вы можете попробовать это:

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