jmjjg/cakephp3-postgres

CakePHP 3 plugin that provides classes for adding default validation rules from the database table schema.


Keywords
validation, postgresql, cakephp
License
GPL-2.0+

Documentation

cakephp-postgres

Description

CakePHP 3 plugin that provides classes for adding default validation rules from the database table schema.

Caching is enabled by default but can be disabled in the configuration or at run-time.

Tested with CakePHP 3.1.0, 3.2.2.

Main classes

AutovalidateBehavior reads various informations from the database table schema... and automatically adds those validation rules to the default ones.

Setup

Assuming the plugin is installed under plugins/Postgres.

Add the following to config/bootstrap.php:

    Plugin::load('Postgres', ['autoload' => true, 'bootstrap' => true]);
[
    // ...
    'Datasources.default.driver' => 'Postgres\Database\Driver\Postgres',
    // ...
    'Datasources.test.driver' => 'Postgres\Database\Driver\Postgres'
    // ...

Usage

The following code should be added to your table classes, inside the initialize() method.

Note that NULL and boolean TRUE and are equivalent as configuration values.

    public function initialize(array $config)
    {
        // ...
		$this->addBehavior('PostgresAutovalidate',
			[
				'className' => 'Postgres.Autovalidate',
				// Default values
				// 1°) Accepted validator names, as a string or an array of strings, NULL for any
				'accepted' => null,
				// 2°) Cache validation rules and their error messages ?
				'cache' => null,
				// 3°) Domain to use for error messages
				'domain' => 'postgres'
			]
		);
        // ...
    }

Code quality

sudo bash -c "( rm -r logs/quality ; find . -type f -regex '^\./\(logs/.*\.log\|tmp/.*\)$' ! -name 'empty' -exec rm {} \; )"
sudo -u apache ant quality -f vendor/jmjjg/cakephp3-postgres/vendor/Jenkins/build.xml