Revision: 24858
Updated Code
at March 29, 2011 21:11 by j4kp07
Updated Code
<?php defined('SYSPATH') or die('No direct script access.'); class System_Config { // First host should be the production server. public static $configs = array( 'example.com' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => FALSE, 'common.google_map_key' => '' ), 'subdomain.example.dev' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => TRUE, 'unfuddle.display' => TRUE, 'license.display' => TRUE, 'common.google_map_key' => 'ABQIAAAANSflOC-DomiqtMkm0RLk0hQRum5EX2MZh7gd_I08tUb48drBLRRgcWKqtRNPur6StvJ8C2yML-gckg' ), ); public static function init() { $configs = self::$configs; $production_server = current(array_keys($configs)); $server_name = isset($_SERVER['SERVER_NAME']) ? preg_replace('#^www\.#i', '', $_SERVER['SERVER_NAME']) : $production_server; Kohana::config_set('config.in_production', $server_name == $production_server); // Enable errors if on cmd line if (PHP_SAPI == 'cli') { ini_set('display_errors', 1); } // Set configuration vars if there is a config set for this hostname if (isset($configs[$server_name])) { // If a site domain isn't configured, defaults to server name. if (!isset($configs[$server_name]['config.site_domain'])) { $configs[$server_name]['config.site_domain'] = $_SERVER['SERVER_NAME'] . '/'; } foreach ($configs[$server_name] as $k => $v) { Kohana::config_set($k, $v); $config_key = explode('.', $k); $config_namespace = array_shift($config_key); $config_key = implode('', $config_key); // If namespace is config, reapply it to core as well. if ($config_namespace == 'config') { if ($k == 'config.display_errors') { ini_set('display_errors', $v); Kohana::config_set("core.$config_key", $v); } } } } else { die('could not find any config for this host.'); } } } Event::add('system.ready', array('System_Config', 'init')); ?>
Revision: 24857
Updated Code
at July 30, 2010 11:55 by j4kp07
Updated Code
<?php defined('SYSPATH') or die('No direct script access.'); class System_Config { // First host should be the production server. public static $configs = array( 'example.com' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => FALSE, 'common.google_map_key' => '' ), 'subdomain.example.dev' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => TRUE, 'unfuddle.display' => TRUE, 'license.display' => TRUE, 'common.google_map_key' => 'ABQIAAAANSflOC-DomiqtMkm0RLk0hQRum5EX2MZh7gd_I08tUb48drBLRRgcWKqtRNPur6StvJ8C2yML-gckg' ), ); public static function init() { $configs = self::$configs; $production_server = current(array_keys($configs)); $server_name = isset($_SERVER['SERVER_NAME']) ? preg_replace('#^www\.#i', '', $_SERVER['SERVER_NAME']) : $production_server; Kohana::config_set('config.in_production', $server_name == $production_server); // Enable errors if on cmd line if (PHP_SAPI == 'cli') { ini_set('display_errors', 1); } // Set configuration vars if there is a config set for this hostname if (isset($configs[$server_name])) { // If a site domain isn't configured, defaults to server name. if (!isset($configs[$server_name]['config.site_domain'])) { $configs[$server_name]['config.site_domain'] = $_SERVER['SERVER_NAME'] . '/'; } foreach ($configs[$server_name] as $k => $v) { Kohana::config_set($k, $v); $config_key = explode('.', $k); $config_namespace = array_shift($config_key); $config_key = implode('', $config_key); // If namespace is config, reapply it to core as well. if ($config_namespace == 'config') { if ($k == 'config.display_errors') { ini_set('display_errors', $v); } Kohana::config_set("core.$config_key", $v); } } } else { die('could not find any config for this host.'); } } } Event::add('system.ready', array('System_Config', 'init')); ?>
Revision: 24856
Updated Code
at July 29, 2010 05:29 by j4kp07
Updated Code
<?php defined('SYSPATH') or die('No direct script access.'); class System_Config { // First host should be the production server. public static $configs = array( 'example.com' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => FALSE, 'common.google_map_key' => '' ), 'example.dev' => array( 'database.default.connection' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'config.display_errors' => TRUE, 'unfuddle.display' => TRUE, 'license.display' => TRUE, 'common.google_map_key' => 'ABQIAAAANSflOC-DomiqtMkm0RLk0hQRum5EX2MZh7gd_I08tUb48drBLRRgcWKqtRNPur6StvJ8C2yML-gckg' ), ); public static function init() { $configs = self::$configs; $production_server = current(array_keys($configs)); $server_name = isset($_SERVER['SERVER_NAME']) ? preg_replace('#^www\.#i', '', $_SERVER['SERVER_NAME']) : $production_server; Kohana::config_set('config.in_production', $server_name == $production_server); // Enable errors if on cmd line if (PHP_SAPI == 'cli') { ini_set('display_errors', 1); } // Set configuration vars if there is a config set for this hostname if (isset($configs[$server_name])) { // If a site domain isn't configured, defaults to server name. if (!isset($configs[$server_name]['config.site_domain'])) { $configs[$server_name]['config.site_domain'] = $_SERVER['SERVER_NAME'] . '/'; } foreach ($configs[$server_name] as $k => $v) { Kohana::config_set($k, $v); $config_key = explode('.', $k); $config_namespace = array_shift($config_key); $config_key = implode('', $config_key); // If namespace is config, reapply it to core as well. if ($config_namespace == 'config') { if ($k == 'config.display_errors') { ini_set('display_errors', $v); } Kohana::config_set("core.$config_key", $v); } } } else { die('could not find any config for this host.'); } } } Event::add('system.ready', array('System_Config', 'init')); ?>
Revision: 24855
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 12, 2010 11:31 by j4kp07
Initial Code
<?php defined('SYSPATH') or die('No direct script access.'); class System_Config { public static function init() { $domain = 'example.com'; $dbs = array( 'example.dev' => array( 'type' => 'mysql', 'user' => 'user', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), 'example.com' => array( 'type' => 'mysql', 'user' => 'username', 'pass' => 'password', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'example_db' ), ); $server_name = str_replace('www.', '', $_SERVER['SERVER_NAME']); if (isset($dbs[$server_name])) { $db = $dbs[$server_name]; } else { die('could not find db config.'); } $default = array ( 'benchmark' => FALSE, 'persistent' => FALSE, 'connection' => $db, 'character_set' => 'utf8', 'table_prefix' => '', 'object' => TRUE, 'cache' => FALSE, 'escape' => TRUE ); // CONFIGURE DEFAULT DB CONNECTION Kohana::config_set('database.default', $default); // DISABLE ERRORS ON PRODUCTION SERVER if (str_replace("www.","",$_SERVER['SERVER_NAME']) == $domain) { Kohana::config_set('config.display_errors', FALSE); ini_set('display_errors', 0); } } } Event::add('system.ready', array('System_Config', 'init')); ?>
Initial URL
Initial Description
Instead of having multiple configurations for multiple domains, and the numerous if/then/else statements not to mention the various locations for storing the configuration....instead, enable hooks in your application config and then add this snippet of code into your application hooks directory.
Initial Title
Kohana System Configuration Hook
Initial Tags
Initial Language
PHP