/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/helpers/MonitorHelper.php
140 строк
4 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\helpers; use common\models\monitor\QueueMonitor; use common\models\monitor\QueueMonitorBudget; use common\models\monitor\QueueMonitorClient; use common\models\monitor\QueueMonitorData; use common\models\monitor\QueueMonitorFile; use common\models\monitor\QueueMonitorProject; use common\models\monitor\QueueMonitorUser; use Yii; use yii\helpers\VarDumper; /** * Расширение функций для работы с монитором * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2019-2022 */ class MonitorHelper { /** * Логирование параметров * @param array $params * @return bool */ public static function begin($params = []) { Yii::debug(VarDumper::dumpAsString($params)); $monitor = new QueueMonitor(); $monitor->setAttributes($params); if (!$monitor->save()) { Yii::debug(VarDumper::dumpAsString($monitor->errors)); return false; } $monitorData = new QueueMonitorData(); $monitorData->setAttributes($params); $monitorData->queue_monitor_id = $monitor->id; if (!$monitorData->save()) { Yii::debug(VarDumper::dumpAsString($monitorData->errors)); return false; } if ($project_id = ArrayHelper::getValue($params, 'project_id')) { $qmp = new QueueMonitorProject([ 'project_id' => $project_id, 'queue_monitor_id' => $monitor->id ]); if (!$qmp->save()) { Yii::debug(VarDumper::dumpAsString($qmp->errors)); return false; } } elseif ($file_id = ArrayHelper::getValue($params, 'file_id')) { $qmf = new QueueMonitorFile([ 'file_id' => $file_id, 'queue_monitor_id' => $monitor->id ]); if (!$qmf->save()) { Yii::debug(VarDumper::dumpAsString($qmf->errors)); return false; } } elseif ($user_id = ArrayHelper::getValue($params, 'user_id')) { $qmu = new QueueMonitorUser([ 'user_id' => $user_id, 'queue_monitor_id' => $monitor->id ]); if (!$qmu->save()) { Yii::debug(VarDumper::dumpAsString($qmu->errors)); return false; } } elseif ($budget_id = ArrayHelper::getValue($params, 'budget_id')) { $qmb = new QueueMonitorBudget([ 'budget_id' => $budget_id, 'queue_monitor_id' => $monitor->id ]); if (!$qmb->save()) { Yii::debug(VarDumper::dumpAsString($qmb->errors)); return false; } } elseif ($client_id = ArrayHelper::getValue($params, 'client_id')) { $qmc = new QueueMonitorClient([ 'client_id' => $client_id, 'queue_monitor_id' => $monitor->id ]); if (!$qmc->save()) { Yii::debug(VarDumper::dumpAsString($qmc->errors)); return false; } } return $monitor->id; } /** * Логирование ответа * @param $params * @return bool */ public static function end($params = []) { Yii::debug(VarDumper::dumpAsString($params)); $monitorData = new QueueMonitorData(); $monitorData->setAttributes($params); if (!$monitorData->save()) { Yii::debug(VarDumper::dumpAsString($monitorData->errors)); return true; } $project_id = ArrayHelper::getValue($params, 'project_id'); $queue_monitor_id = ArrayHelper::getValue($params, 'queue_monitor_id'); if ($project_id and $queue_monitor_id) { $qmp = new QueueMonitorProject([ 'project_id' => $project_id, 'queue_monitor_id' => $queue_monitor_id ]); if (!$qmp->save()) { Yii::debug(VarDumper::dumpAsString($qmp->errors)); return false; } QueueMonitor::updateAll(['title' => $qmp->project->title], ['id' => $queue_monitor_id]); } return false; } }