gourmet/filters

Dispatcher filters (middlewares) for CakePHP 3

Installs: 2 792

Dependents: 0

Suggesters: 0

Stars: 10

Watchers: 2

Forks: 2

Open Issues: 2

Type:cakephp-plugin

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

README

[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.

Install

Using Composer:

composer require gourmet/filters:1.1.x-dev

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

\Cake\Core\Plugin::load('Gourmet/Filters');

Usage

All the below examples happen in bootstrap.php.

MaintenanceFilter

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

DispatcherFactory::add('Gourmet/Filters.Maintenance');

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'.

IpFilter

Restrict access to spefic IPs and/or ban other.

DispatcherFactory::add('Gourmet/Filters.Ip', [
    'allow' => [
        '127.0.0.1'
    ]
]);

or

DispatcherFactory::add('Gourmet/Filters.Ip', [
    'disallow' => [
        '127.0.0.1'
    ]
]);

RobotsFilter

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'.

DispatcherFactory::add('Gourmet/Filters.Robots');

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

http://github.com/gourmet/filters/issues

License

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