Either run
php composer.phar require --prefer-dist malsa/yii2-maintenance-mode "*"
or add
"malsa/yii2-maintenance-mode": "*"
to the require section of your composer.json
file.
Add to your config file:
'bootstrap' => ['log', 'maintenanceMode'],
...
'components' => [
'maintenanceMode' => [
'class' => 'malsa\maintenance\MaintenanceMode',
],
...
],
'maintenanceMode' => [
// Component class namespace
'class' => 'malsa\maintenance\MaintenanceMode',
// Page title
'title' => 'Custom title',
// Mode status
'enabled' => true,
// Route to action
'route' => 'maintenance/index',
// Show title
'title' => 'this site is under maintenance',
// Show message
'message' => 'Sorry, perform technical works.',
// Allowed user names
'users' => [
'Malsa',
],
// Allowed roles
'roles' => [
'administrator',
],
// Allowed IP addresses
'ips' => [
'127.0.0.1',
],
// Allowed URLs
'urls' => [
'site/login'
],
// Layout path
'layoutPath' => '@web/maintenance/layout',
// View path
'viewPath' => '@web/maintenance/view',
// User name attribute name
'usernameAttribute' => 'login',
// HTTP Status Code
'statusCode' => 503,
//Retry-After header
'retryAfter' => 120 //or Wed, 21 Oct 2015 07:28:00 GMT for example
],
Add to your console config file:
'bootstrap' => ['log', 'maintenanceMode'],
...
'components' => [
'maintenanceMode' => [
'class' => 'malsa\maintenance\MaintenanceMode',
],
...
],
Change your web config file:
'maintenanceMode' => [
'class' => 'malsa\maintenance\MaintenanceMode',
'enabled' => false
],
Now you can set mod by command:
php yii maintenance/enable
php yii maintenance/disable
Add the following rules in the 'urls' section of component settings:
'urls' => [
'debug/default/toolbar',
'debug/default/view'
]
class DashboardController extends Controller
{
...
public function actionEnable()
{
...
Yii::$app->maintenance->enable();
...
}
public function actionDisable()
{
...
Yii::$app->maintenance->disable();
...
}
...
}