<commit_before># CakePHP Common Plugin

Built to help quickly putting together [CakePHP][cakephp] applications.

Apart from being the base to all other [gourmet plugins][gourmet], this plugin
extends some of the [CakePHP][cakephp] core functionality (i.e. full support of
logging scopes, more complete base test case, better app configuration, etc.).

## Features

* Easily [extendable using events](wiki/Events).

* Simplified test writing.

* Advanced application configuration.

* Out of the box support for [other popular CakePHP plugins](wiki/Other-Popular-Plugins).

### Behaviors

* [Authorizable](wiki/Authorizable-Behavior): Simple and easy-to-use model record access management.

* [Duplicatable](wiki/Duplicatable-Behavior): Duplicates any model record to another model's table.

* [Encodable](wiki/Encodable-Behavior): Several encoding methods for storing arrays in model's table.

* [Computable](wiki/Computable-Behavior): Computes total or average similarly to the [CakePHP][cakephp]'s `counterCache`.

### Helpers

* [Table](wiki/Table-Helper): Creates table for displaying result sets, with pagination support.

## Install

### Composer package

First, add this plugin as a requirement to your `composer.json`:

	{
		"require": {
			"cakephp/common": "*"
		}
	}<commit_msg>Update readme.<commit_after># CakePHP Common Plugin

Built to help quickly putting together [CakePHP][cakephp] applications.

Apart from being the base to all other [gourmet plugins][gourmet], this plugin
extends some of the [CakePHP][cakephp] core functionality (i.e. full support of
logging scopes, more complete base test case, better app configuration, etc.).

## Features

* Easily [extendable using events](/gourmet/common/wiki/Events).

* Simplified test writing.

* Advanced application configuration.

* Out of the box support for [other popular CakePHP plugins](/gourmet/common/wiki/Other-Popular-Plugins).

### Behaviors

* [Authorizable](/gourmet/common/wiki/Authorizable-Behavior): Controls access to records.

* [Commentable](/gourmet/common/wiki/Commentable-Behavior): Adds comments to records.

* [Computable](/gourmet/common/wiki/Computable-Behavior): Computes total or average similarly to the [CakePHP][cakephp]'s `counterCache`.

* [Confirmable](/gourmet/common/wiki/Confirmable-Behavior): Adds `isConfirmed()` validation rule.

* [Detailable](/gourmet/common/wiki/Detailable-Behavior): Extends any record with extra details.

* [Duplicatable](/gourmet/common/wiki/Duplicatable-Behavior): Duplicates any record to another model's table.

* [Encodable](/gourmet/common/wiki/Encodable-Behavior): Encodes array values in records for storing.

* [Filterable](/gourmet/common/wiki/Filterable-Behavior): Filters out any field from both, the `find()` resultset and `save()` result.

* [Stateable](/gourmet/common/wiki/Stateable-Behavior): Adds `status` type of field to records.

### Components

* [Opauth](/gourmet/common/wiki/Opauth-Component): Adds the missing component from the [CakePHP Opauth](/uzyn/cakephp-opauth) plugin.

* [PersistentValidation](/gourmet/common/wiki/PersistentValidation-Component): Persists validation errors after a redirect.


### Helpers

* [Asset](/gourmet/common/wiki/Asset-Helper): Controls asset inclusions (works well with [AssetCompress](/markstory/asset_compress)).

* [Navigation](/gourmet/common/wiki/Navigation-Helper): Renders navigations.

* [Stateable](/gourmet/common/wiki/Stateable-Helper): Adds `status` type of selection list.

* [Table](/gourmet/common/wiki/Table-Helper): Creates table for displaying result sets, with pagination support.

## Install

### Composer package

First, add this plugin as a requirement to your `composer.json`:

	{
		"require": {
			"cakephp/common": "*"
		}
	}
{'fraction_non_alphanumeric': 0.11921946003742315, 'fraction_numerical': 0.0, 'mean_word_length': 5.299663299663299, 'pattern_counts': {'":': 4, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1233366', 'n_tokens_mistral': 1144, 'n_tokens_neox': 1097, 'n_words': 331}