Easy Maintenance
Utility Library to handle site maintenance situation
Key Features
- Easy to use
- Highly Customizable
Installation/Usage
If you're using Composer to manage dependencies, you can include the following in your composer.json file:
"require": {
"xiidea/ez-maintenance": "dev-master"
}
Then, after running composer update
or php composer.phar update
, you can
load the class using Composer's autoloading:
require 'vendor/autoload.php';
Otherwise, you can simply require the given autoload.php
file:
require_once 'PATH_TO_LIBRARY/autoload.php';
Then you can just call EzMaintenance\Worker::watch()
In your index.php
(see the example)
Different Adapters to check maintenance mode
Use adapter to detect if we need to serve the maintenance page or not. 3 Types of adapter provided. You can also define your own adapter.
File Adapters
This is the default adapter. it checks for a specific file if exist or not. default path is down. For the following implementation
you will be shown maintenance page if there is a file exists named maintenance.enable
<?php
EzMaintenance\Worker::watch('file', array(
'path' => 'maintenance.enable'
));
Env Adapters
Using this adapter you can watch over existence of an environment variable. The maintenance page will be shown if the environment variable is present with specific value.
<?php
EzMaintenance\Worker::watch('env', array(
'var_name' => 'APPLICATION_ENV',
'check_value' => 'down'
));
Const Adapters
This is same ad the env adapter. Only difference is it will check for a php constant instead of environment variable.
<?php
EzMaintenance\Worker::watch('const', array(
'var_name' => 'APPLICATION_ENV',
'check_value' => 'down'
));
Custom Adapters
You can define your own adapter by implementing the EzMaintenance\Adapter\AdapterInterface
Common options
Following options are available to customize the behaviour of the library
interval
This option state the interval in second, the system will check for the site status with this interval. default is 5 second.
override_key
You can configure a key to override the maintenance mode. This is helpful t test your site normally while others will see maintenance page.
To browse the page in maintenance mode, you just need to pass the override key as query parameter like: http://yourdomain.com/?key={override_key}
inverse
If you want to enable maintenance mode when adapter return false, you can set inverse = true
.
template
You can provide the built-in template name(simple, game, clock) or path to your own template file. All the options will also be available in your template.
You should echo $javascript
in your template file to enable auto status check.
<?php
echo $javascript;
?>
msg
If you are using any of the default template, you can customize the message using this option.
Contributing to Library
If you find a bug or want to add a feature to EzMaintenance, great! In order to make it easier and quicker for me to verify and merge changes in, it would be amazing if you could follow these few basic steps:
- Fork the project.
- Branch out into a new branch.
git checkout -b name_of_new_feature_or_bug
- Make your feature addition or bug fix.
- Commit.
- Send me a pull request!