Как вызвать классы Yii2 в отдельном файле?

164
26 октября 2017, 10:18

Суть задачи: у меня в корне проекта лежит файл 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. Как к нему можно обратится с этого файла?

Answer 1

Первое, возможно new \frontend\models\Message(),а не Messages().

Второе, проверьте правильность namspace зайдите в класс Message и проверьте его неймспейс.

Третье больше совет. Используйте use

use \frontend\models\Messages
READ ALSO
Установка Snipe-IT на Ubuntu 16.10

Установка Snipe-IT на Ubuntu 16.10

Всем приветДелаю все по документации с официального сайта, но застрял на этом шаге

183
Вектор из объектов класса. Ошибка дампа стэка

Вектор из объектов класса. Ошибка дампа стэка

Добрый вечерВ задании необходимо было создать лес бинарных деревьев по введённым данным, единичное дерево было реализовано через класс:

254
multiple types in one declaration как исправить [требует правки]

multiple types in one declaration как исправить [требует правки]

У меня есть код на C++ с использованием qt:

392
Visual Studio 2013 не запускает программу из за ucrtbased.dll

Visual Studio 2013 не запускает программу из за ucrtbased.dll

я распаковал openCV прописал переменную и path сделал настройки в проекте, ничего красным не светится - при компиляции ошибка

240