Режим динамического обслуживания Yii2

Я использовал следующую библиотеку в своем проекте Yii2: кликните сюда

Я настроил и проверил это, и он прекрасно работает. Но теперь я хочу сделать его динамичным, так как если администратор нажимает на тумблер, веб-сайт должен перейти в режим обслуживания. Чтобы это произошло, все, что мне нужно сделать, это сделать включенную переменную true, которая используется в классе обслуживания этой библиотеки.

Но мой вопрос заключается в том, как мне связать мой тумблер с этой переменной.

Заранее спасибо!

0

Решение

Вы можете получить доступ к компонентам приложения, как показано ниже:

Yii::$app->componentName

Итак, с этим компонентом вы можете получить к нему доступ, как показано ниже:

Yii::$app->maintenanceMode->enable=FALSE;
2

Другие решения

Перевод сайта Yii2 в режим обслуживания означает форсирование маршрута перед обработкой запроса. Это можно просто сделать через конфиг on beforeRequest закрытие:

в /config/web.php

return [
...
'bootstrap' => ['log'],
'on beforeRequest' => function ($event) {
if (Yii::$app->params['portalMode'] == 'maintenance') {
$letMeIn = Yii::$app->session['letMeIn'] || isset($_GET['letMeIn']);
if (!$letMeIn) {
Yii::$app->catchAll = [
// force route if portal in maintenance mode
'site/maintenance',
];
}else{
Yii::$app->session['letMeIn'] = 1;
}
}
},
'components' => [
...
]

и в SiteController создайте действие «actionMaintenance»:

public function actionMaintenance()
{
return $this->render('maintenance');
}

и ввиду views/site/maintenance.php настроить макет:

<h1>The site is currently under maintenance</h1>
<p>We apologize for inconvenience. Please come back later.</p>

Смотрите также связанный пост.

5

По вопросам рекламы [email protected]