brussens/yii2-maintenance-mode

Maintenance mode component for Yii framework 2.x.x version.

Maintainers

👁 brussens

Package info

github.com/brussens/yii2-maintenance-mode

Type:yii2-extension

pkg:composer/brussens/yii2-maintenance-mode

Statistics

Installs: 262 827

Dependents: 5

Suggesters: 0

Stars: 78

Open Issues: 3

1.2.2 2022-04-24 21:18 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT de5690c1da33dffb981acffe94d62fe69a0b4c50

  • Brusenskiy Dmitry <brussens.woop@nativeweb.ru>

maintenanceyiiyii2mode

This package is auto-updated.

Last update: 2026-06-25 06:01:25 UTC


README

👁 Latest Stable Version
👁 Total Downloads
👁 License

Install

Either run

php composer.phar require --prefer-dist brussens/yii2-maintenance-mode "*"

or add

"brussens/yii2-maintenance-mode": "*"

to the require section of your composer.json file.

Add to your config file:

'bootstrap' => [
 'brussens\maintenance\Maintenance'
],
...
'container' => [
 'singletons' => [
 'brussens\maintenance\Maintenance' => [
 'class' => 'brussens\maintenance\Maintenance',

 // Route to action
 'route' => 'maintenance/index',

 // Filters. Read Filters for more info.
 'filters' => [
 [
 'class' => 'brussens\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
 ],
 'brussens\maintenance\StateInterface' => [
 'class' => 'brussens\maintenance\states\FileState',

 // optional: use different filename for controlling maintenance state:
 // 'fileName' => 'myfile.ext',

 // optional: use different directory for controlling maintenance state:
 // 'directory' => '@mypath',
 ]
 ]
]

Filters

You can use filters for allow excepts:

'container' => [
 'singletons' => [
 'brussens\maintenance\Maintenance' => [
 'class' => 'brussens\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' => 'brussens\maintenance\filters\RouteFilter',
 'routes' => [
 'debug/default/toolbar',
 'debug/default/view',
 'site/login',
 ]
 ],
 // Allowed roles filter
 [
 'class' => 'brussens\maintenance\filters\RoleFilter',
 'roles' => [
 'administrator',
 ]
 ],
 // Allowed IP addresses filter
 [
 'class' => 'brussens\maintenance\filters\IpFilter',
 'ips' => [
 '127.0.0.1',
 ]
 ],
 //Allowed user names
 [
 'class' => 'brussens\maintenance\filters\UserFilter',
 'checkedAttribute' => 'username',
 'users' => [
 'BrusSENS',
 ],
 ]
 ],
 ]
 ]
]

You can create custom filter:

class MyCustomFilter extends Filter
{
 public $time;

 /**
 * @return bool
 */
 public function isAllowed()
 {
 return (bool) $this->time > 3600;
 }
}

Set maintenance mode by console or dashboard

Add to your console or common config file:

'container' => [
 'singletons' => [
 'brussens\maintenance\StateInterface' => [
 'class' => 'brussens\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' => 'brussens\maintenance\commands\MaintenanceController',
 ],
],

Now you can set mode by command:

php yii maintenance/enable
php yii maintenance/disable