synolia / sylius-maintenance-plugin
Plugin for Sylius when your website is under maintenance
Installs: 48 134
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 11
Forks: 8
Open Issues: 1
Type:sylius-plugin
Requires
- php: ^8.2
- jaybizzle/crawler-detect: ^1.2
- sylius/sylius: ~2.0.0
- webmozart/assert: ^1.11
Requires (Dev)
- dbrekelmans/bdi: ^1.0
- friendsoftwig/twigcs: ^6.4.0
- php-parallel-lint/php-parallel-lint: ^1.4
- phpmd/phpmd: ^2.13
- phpro/grumphp: ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpstan/phpstan-webmozart-assert: ^2.0
- phpunit/phpunit: ^9.5
- povils/phpmnd: ^3.0
- rector/rector: ^2.0
- squizlabs/php_codesniffer: ^3.11
- sylius-labs/coding-standard: ^4.3
- symfony/browser-kit: ^6.4
- symfony/debug-bundle: ^6.4
- symfony/dotenv: ^6.4
- symfony/intl: ^6.4
- symfony/panther: ^2.0
- symfony/web-profiler-bundle: ^6.4
README
Sylius Maintenance Plugin
Features
When your website is under maintenance, and you want to :
- Do not allow access to your website and display the message "the website is under maintenance" on the frontpage.
- Allow access to your website to some Ips addresses or secret token
- Activate and deactivate these behaviors by commands
- Activate and deactivate behaviors in your Sylius Back-office
- Custom your message in your Sylius Back-office
- Allow access to search bots to avoid negative impact on SEO
Requirements
Installation
-
Add the bundle and dependencies in your composer.json :
composer require synolia/sylius-maintenance-plugin
-
Import routing in your
config/routes.yaml
file:synolia_maintenance: resource: "@SynoliaSyliusMaintenancePlugin/config/routes/admin_routing.yaml" prefix: '/%sylius_admin.path_name%'
-
Clear cache
php bin/console cache:clear
Usage
-
To turn your website under maintenance, please create a file maintenance.yaml at the root of your project.
-
If you want to allow access for some Ips, please add these Ip into maintenance.yaml
For example :ips: [172.16.254.1, 255.255.255.255, 192.0.0.255]
You can turn your website under maintenance by console commands :
-
Enable the plugin
php bin/console maintenance:enable
-
Enable the plugin and add one or multiple ips addresses separated with a space
php bin/console maintenance:enable 172.16.254.1 255.255.255.255 192.0.0.255
3.Enable the plugin and disable admin access
``` shell
php bin/console maintenance:enable --disable-admin
```
4.Disable the plugin
``` shell
php bin/console maintenance:disable
```
5.Remove configuration file using CLI
By default, maintenance.yaml configuration file remains when running maintenance:disable
or via admin panel using toggle disable
Nevertheless passing option [-c|--clear]
to command line above will reset previous saved configuration
You can also turn your website under maintenance in Back Office :
- Enable/disable the plugin
- Allow access for one or multiple ips addresses (optional)
- Allow access for secret token (session and request) (optional)
- Create your custom message (optional)
- Grant access to search bots during maintenance (optional)
- Grant access to admins during maintenance (optional)
If you want to put the maintenance.yaml in a directory, please add your directory in .env:
For example :
SYNOLIA_MAINTENANCE_DIR=var/maintenance
If you want to add cache on the maintenance.yaml:
# .env SYNOLIA_MAINTENANCE_CACHE=30 # ttl in seconds
And in project code (for example with redis)
# config/packages/prod/cache.yaml framework: cache: ... pools: ... synolia_maintenance.cache: adapter: cache.adapter.redis
Precisions for access token
Once token is generated, disallowing maintenance will be available thought request as well.
So you can use it as query parameter ?synolia_maintenance_token={$token}
or in headers HTTP_SYNOLIA_MAINTENANCE_TOKEN: token
for a particular request to bypass maintenance mode.
Development
See How to contribute.
License
This library is under the EUPL-1.2 license.
Credits
Developed by Synolia.