[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: паттерн singelton
greenrow
Добрый день!

Создаю класс который должен вызвать свой конструктор только один раз ( Singelton)


Class MessageSocket{

protected $socket;


private static $instance=null;



public static function singleton()
{
if (null === self::$instance){

/созднание нового обьекта и вызов конструктора/

self::$instance = new self();

}
return self::$instance;
}



/констурктор/

protected function __construct()
{

$this->socket= socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
error_reporting('E_ALL');
socket_connect($this->socket,"127.0.0.1",7777);
if (!$this->socket) {
echo "error connection";
}

}






}


Это тестовый класс.

При клике на элемент , на сервер отправляется определенный ajax пост запрос и вызывается данный класс

   if(Yii::$app->request->post('load_message_area')){


$message_obj=MessageSocket::singleton();
}



Проблема в том,что при каждом клике создается новый конструктор и в итоге создается новое сокет соединение.., то есть что то не так делаю, хотя сам класс простой и вроде все верно, может кто то сталкивался с подобной проблемой реализации паттерна Singelton?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.