cakemanager / cakephp-settings
Settings plugin for CakePHP
Installs: 6 294
Dependents: 1
Suggesters: 1
Security: 0
Stars: 25
Watchers: 5
Forks: 18
Open Issues: 6
Type:cakephp-plugin
Requires
- php: >=5.4
- cakemanager/cakephp-utils: dev-master
- cakephp/orm: 3.*
- cakephp/plugin-installer: *
Requires (Dev)
- cakephp/orm: ~3.0
- phpunit/phpunit: 4.6.*@dev
This package is auto-updated.
Last update: 2024-11-06 21:56:55 UTC
README
The Settings Plugin allows you to manage your settings (normally used with cake's Configure
-class) in your database.
-
Is easy to use: you can use the
Configure::read()
andConfigure::write()
methods via theSetting
-class. -
Also, you are able to read and write settings by your console.
-
Last but not least: If you use the CakeAdmin Plugin you get an automatically generated form :).
Note: The Settings-plugin is prefix-minded. An example:
Prefix.Name
.
Installation
You can install this plugin into your CakePHP application using composer. For existing applications you can add the following to your composer.json
file:
"require": { "cakemanager/cakephp-settings": "dev-master" }
And run /composer update
.
Configuration
You will need to add the following line to your application's bootstrap.php file:
Plugin::load('Settings', ['bootstrap' => true, 'routes' => true]); // or run in your shell $ bin/cake plugin load -b -r Settings
Next you need to create the table. Use the following command to initialize the settings-table.
$ bin/cake migrations migrate -p Settings
Usage
The Setting
-class works the same like the Configure
-class from CakePHP itself.
You can include the class with:
use Settings\Core\Setting;
Write
You can write settings with the following:
Setting::write('App.Name', 'Custom Name');
The value Custom Name
is now written to the database with the key App.Name
. The empty array can contain multiple options
Read
Now we gonna read the value from our just created key. Use:
Setting::read('App.Name');
This will return our value: Custom Name
.
Register
To prevent missing configurations when migrating to another environment the register
method is introduced.
Use the following to make sure the configuration exists in your application:
Setting::register('App.Name', 'Default Value', []);
Options
The following options are available:
description
- Description of your setting.type
- Type to use liketext
,select
, and more.options
- Array with available options. In combination with thetype = select
option, this will generate a select-box with the given options.editable
- Bool if the setting should be editable.weight
- Weight (order) of the setting.
The options key can handle multiple types. You can define an array with options, but you can also create a close to prevent long queries on every request. Example:
Setting::register('App.Index', false, [ 'options' => function() { return TableRegistry::get('Blogs')->find('list')->toArray(); } ]);
Using the setting-forms
If you are using the CakeAdmin Plugin, we will create a default form where you can edit your settings (if the field editable
isset to 1
). The Settings-Plugin will automatically add a menu-item to the admin-area.
If you click the menu-item you will see a list with all editable settings who contains the chosen prefix (or default: App
).
Register
To add your prefix to the settings-list use the following:
Configure::write('Settings.Prefixes.Test', 'Test');