новые сообщения
ответы на мои сообщения
избранное
скрытые темы
случайный топик
открыть всё в новых вкладках
Форум → Программирование → PHP для идиотов → Zend Framework - Свой плагин ресурса
Zend Framework - Свой плагин ресурса
-
Создал свой плагин ресурса для работы с классом 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');
}
// отправка сообщения в канал "Alpha"
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 плагина ресурсов для базы данных. -
18 января 2011 г. 16:38, спустя 1 час 27 минут 37 секунд
Каждый реализует модели в ZF по-своему. Я думаю, один из способов решения вашей проблемы может быть такой:
<?php
class Application_Services_RealplexorService implements ServiceInterface
{
private $realPlexor = null;
public function __construct()
{
$this->realPlexor = new Dklab_Realplexor(); // creating realPlexor object
}
public function post($param1, $param2)
{
$this->realPlexor->send($param1, $param2);
}
}
А сам сервис уже хранить в реестре. В любом случае нарастет большая обертка над вашем реплексором. И правда не понимаю, почему сразу не использовать Dklab_Realplexor как модель?
Пожалуйста, авторизуйтесь, чтобы написать комментарий!