Суть задачи: у меня в корне проекта лежит файл server.php. Он используется для работы сокета.
У меня в нем описаны функции для сокетов и я хочу, что бы когда срабатывается какая то функция, я мог что то делать в базе проекта.
Например, когда срабатывает функция, что пришло новое сообщение, я хочу что бы это новое сообщение так же записалось в базу.
Код server.php
require 'vendor/autoload.php';
$io = new \PHPSocketIO\SocketIO(2020);
$io->on('connection', function($socket){
$socket->addedUser = false;
// when the client emits 'new message', this listens and executes
$socket->on('new message', function ($message, $user_to, $user_from,
$data, $img)use($socket){
// we tell the client to execute 'new message'
$sms=new \frontend\models\Messages();
$sms->from_user=$user_from;
$sms->to_user=$user_to;
$sms->text=$message;
$sms->data=$data;
$sms->status=0;
$sms->save();
$socket->broadcast->emit('new message', array(
'message'=> $message,
'user_to'=> $user_to,
'user_from'=>$user_from,
'data'=>$data,
'img'=>$img
));
});
});
\Workerman\Worker::runAll();
Но этот код не срабатывает, говорит что не может найти класс Message. Как к нему можно обратится с этого файла?
Первое, возможно new \frontend\models\Message(),а не Messages().
Второе, проверьте правильность namspace зайдите в класс Message и проверьте его неймспейс.
Третье больше совет. Используйте use
use \frontend\models\Messages
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости