insolita/yii2-maintenance

Component for maintenance mode behavior, focused on retrieve status from external configuration

Maintainers

👁 Insolita

Package info

github.com/Insolita/yii2-maintenance

Type:yii2-extension

pkg:composer/insolita/yii2-maintenance

Statistics

Installs: 10

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

0.0.1 2017-06-01 00:12 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 67f30f89d18f0eb1341e65e6de66d2c1ad5f02bd

  • insolita <webmaster100500.woop@ya.ru>

extensionyii2

This package is auto-updated.

Last update: 2026-06-11 20:45:27 UTC


README

  • Component for maintenance mode behavior, focused on retrieve status from external configuration
  • Support ability for allow exclusive access in maintenance mode for specified ips
  • Support preliminar notice about soon maintenance works
  • Provide observable events when maintenance process or preliminar modes

👁 Status

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist insolita/yii2-maintenance "~0.0.1"

or add

"insolita/yii2-maintenance": "~0.0.1"

to the require section of your composer.json file.

Usage

Once the extension is installed, add in config components section, and also bootstrap section :

 'bootstrap'=>['log','config','maintenance'],
 'container'=>[
 ...
 'definitions'=>[
 '\insolita\maintenance\IConfig'=>'your\config\component\class'
 ]
 ],
 ...
 'components'=>[
 'maintenance'=>[
 'class'=>'\insolita\maintenance\Maintenance',
 'enabledKey'=>'config key for maintennce indication',
 'preliminarKey'=>'config key for preliminar maintenance indication',
 'ipSkippedKey'=>'config key for comma-seperated ips with exclusive access',
 'catchRoute'=>['site/maintenance'], //- route catched all requests in maintenance mode
 //possible events use cases
 'on maintenance_process'=>function($event){
 //$event->sender is maintenance component!
 if($event->sender->isSkipForIp===true){
 Yii::$app->getSession()->setFlash('warning','Site in maintenance mode!');
 }
 },
 'on maintenance_soon'=>function($event){
 Yii::$app->getSession()->setFlash('warning',
 'After 5 minutes, the site will be serviced, please finish or save the undelivered messages');
 }
 ]
 ],