Skip to content

synolia/SyliusMaintenancePlugin

Repository files navigation

License CI - Analysis CI - Sylius Version Total Downloads

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

Alt text

Requirements

Version
PHP ^8.0
Sylius ^1.10

Installation

  1. Add the bundle and dependencies in your composer.json :

    composer require synolia/sylius-maintenance-plugin
  2. Import required config in your config/packages/_sylius.yaml file:

    imports:
        - { resource: "@SynoliaSyliusMaintenancePlugin/Resources/config/config.yaml" }
  3. Import routing in your config/routes.yaml file:

    synolia_maintenance:
        resource: "@SynoliaSyliusMaintenancePlugin/Resources/config/admin_routing.yaml"
        prefix: '/%sylius_admin.path_name%'
  4. 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 :

  1. Enable the plugin

     php bin/console maintenance:enable
  2. 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. Disable the plugin

    php bin/console maintenance:disable
  4. 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 (optional)
  • Create your custom message (optional)
  • Grant access to search bots 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 exemple with redis)

# config/packages/prod/cache.yaml
framework:
    cache:
        ...
        pools:
            ...
            synolia_maintenance.cache:
                adapter: cache.adapter.redis

Development

See How to contribute.

License

This library is under the EUPL-1.2 license.

Credits

Developed by Synolia.