Создаю класс который должен вызвать свой конструктор только один раз ( 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?