Skip to content

Instantly share code, notes, and snippets.

@majna
Created March 5, 2012 12:51
Show Gist options
  • Save majna/1978200 to your computer and use it in GitHub Desktop.
Save majna/1978200 to your computer and use it in GitHub Desktop.
Plugin configuration
<?php
// Response to https://groups.google.com/forum/?fromgroups#!topic/cake-php/5rp9qIh2O9E
// Problem:
CakePlugin::load('CoolPlugin', array(
'config1' => 'value1',
'config2' => true,
'config3' => array(
'subkeyA' => 'valueA',
'subkeyB' => 'valueB'
)
));
// Solution:
// Create configuration file CoolPlugin/Config/cool_config.php:
$config['CoolPlugin']['config1'] = 'value1';
$config['CoolPlugin']['config2'] = true;
$config['CoolPlugin']['config3'] = array(
'subkeyA' => 'valueA',
'subkeyB' => 'valueB'
);
// Load configuration file in CoolPlugin/Config/bootstrap.php:
Configure::load('CoolPlugin.cool_config');
// Load plugin including bootstrap app/Config/bootstrap.php:
CakePlugin::load('CoolPlugin', array('bootstrap' => true));
// Use configs:
Configure::read('CoolPlugin.config1');
// Additionaly, move plugin configuration file to app/Config:
// Change app/Config/bootstrap.php:
CakePlugin::load('CoolPlugin', array('bootstrap' => true, 'configuration' =>'cool_config'));
// Change CoolPlugin/Config/bootstrap.php (plugin bootstrap.php has access to passed $config array from CakePlugin::load()):
$configuration = (isset($config['configuration'])) ? $config['configuration'] : 'CoolPlugin.cool_config';
// This will load CoolPlugin configuration from app/Config/cool_config.php
Configure::load($configuration);
// You can also customize a config reader here (ConfigReaderInterface: php ini, json, database...)
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment