Dispatcher filters (middlewares) for CakePHP 3

Installs: 2 792

Dependents: 0

Suggesters: 0

Stars: 10

Watchers: 2

Forks: 2

Open Issues: 2


v1.0.0 2015-06-08 20:59 UTC


[Build Status](https://travis-ci.org/gourmet/filters [Total Downloads](https://packagist.org/packages/gourmet/filters License

Dispatcher filters (middlewares) for CakePHP 3.

NOTE: This is the master branch, latest stable is 1.0 branch.


Using Composer:

composer require gourmet/filters:1.1.x-dev

You then need to load the plugin. In boostrap.php, something like:



All the below examples happen in bootstrap.php.


By default, this filter will look for the ROOT/maintenance.html file and if it exists, it will use it as the response.


You could customize the path like so:

DispatcherFactory::add('Gourmet/Filters.Maintenance', [
    'path' => '/absolute/path/to/maintenance/file.html'

You could for example do echo 'Scheduled maintenance' > maintenance.html and your site will automatically be set to maintenance mode with the message 'Scheduled maintenance'.


Restrict access to spefic IPs and/or ban other.

DispatcherFactory::add('Gourmet/Filters.Ip', [
    'allow' => [


DispatcherFactory::add('Gourmet/Filters.Ip', [
    'disallow' => [


This one provides a default robots.txt file for non-production environments. By default, it checks the 'APP_ENV' environment variable and compares it's value to 'production'.


On all your non-production environments, robots.txt will look like this:

User-Agent: *
Disallow: /

and your pages' headers will include the X-Robots-Tag with 'noindex. nofollow, noarchive' flags.

You can customize all of that using the configuration keys: priority, when, key, value.

Patches & Features

  • Fork
  • Mod, fix
  • Test - this is important, so it's not unintentionally broken
  • Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
  • Pull request - bonus point for topic branches

Bugs & Feedback



Copyright (c) 2015, Jad Bitar and licensed under The MIT License.