kagir / yii2-maintenance-mode
Yii框架2.x.x版本的维护模式组件。
1.2.1
2021-06-11 08:14 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-28 00:46:05 UTC
README
安装
运行以下命令之一:
php composer.phar require --prefer-dist kagir/yii2-maintenance-mode "*"
或者
"kagir/yii2-maintenance-mode": "*"
将以下内容添加到您的 composer.json 文件的 require 部分。
添加到您的配置文件
'bootstrap' => [ 'kagir\maintenance\Maintenance' ], ... 'container' => [ 'singletons' => [ 'kagir\maintenance\Maintenance' => [ 'class' => 'kagir\maintenance\Maintenance', // Route to action 'route' => 'maintenance/index', // Filters. Read Filters for more info. 'filters' => [ [ 'class' => 'kagir\maintenance\filters\RouteFilter', 'routes' => [ 'debug/default/toolbar', 'debug/default/view', 'site/login', ] ] ], // HTTP Status Code 'statusCode' => 503, //Retry-After header 'retryAfter' => 120 // or Wed, 21 Oct 2015 07:28:00 GMT for example ], 'kagir\maintenance\StateInterface' => [ 'class' => 'kagir\maintenance\states\FileState', // optional: use different filename for controlling maintenance state: // 'fileName' => 'myfile.ext', // optional: use different directory for controlling maintenance state: // 'directory' => '@mypath', ] ] ]
过滤器
您可以使用过滤器来允许例外。
'container' => [ 'singletons' => [ 'kagir\maintenance\Maintenance' => [ 'class' => 'kagir\maintenance\Maintenance', // Route to action 'route' => 'maintenance/index', // Filters. Read Filters for more info. 'filters' => [ //Allowed routes filter. Your can allow debug panel routes. [ 'class' => 'kagir\maintenance\filters\RouteFilter', 'routes' => [ 'debug/default/toolbar', 'debug/default/view', 'site/login', ] ], // Allowed roles filter [ 'class' => 'kagir\maintenance\filters\RoleFilter', 'roles' => [ 'administrator', ] ], // Allowed IP addresses filter [ 'class' => 'kagir\maintenance\filters\IpFilter', 'ips' => [ '127.0.0.1', ] ], //Allowed user names [ 'class' => 'kagir\maintenance\filters\UserFilter', 'checkedAttribute' => 'username', 'users' => [ 'Kagir', ], ] ], ] ] ]
您可以创建自定义过滤器
class MyCustomFilter extends Filter { public $time; /** * @return bool */ public function isAllowed() { return (bool) $this->time > 3600; } }
通过控制台或仪表板设置维护模式
添加到您的控制台或公共配置文件
'container' => [ 'singletons' => [ 'kagir\maintenance\StateInterface' => [ 'class' => 'kagir\maintenance\states\FileState', // optional: use different filename for controlling maintenance state: // 'fileName' => 'myfile.ext', // optional: use different directory for controlling maintenance state: // 'directory' => '@mypath', ] ] ], 'controllerMap' => [ 'maintenance' => [ 'class' => 'kagir\maintenance\commands\MaintenanceController', ], ],
现在您可以通过命令设置模式
php yii maintenance/enable
php yii maintenance/disable