_config.php
<?php function _config($for=null) { $path = dirname(__FILE__) . '/config.xml'; $sig = md5($path); if (defined($sig)) { $config = unserialize(constant($sig)); } else { $config = (object) array(); $xml = simplexml_load_file(dirname(__FILE__) . '/config.xml'); foreach ($xml->environments->children() AS $env) { $environment = $env->attributes()->name; $config->{$environment} = (object) array(); foreach ($env->children() AS $variable) { $config->{$environment}->{$variable->attributes()->name} = (string) $variable; } } define($sig,serialize($config)); } if ($for==null) { $for = getenv('ENVIRONMENT'); if (empty($for)) { $for = 'dev'; } } return isset($config->{$for}) ? $config->{$for} : (object) array(); }
config.xml
<?xml version="1.0" encoding="UTF-8"?> <config> <environments> <environment name="dev"> <variable name="mysql_host">localhost</variable> <variable name="mysql_port">3306</variable> <variable name="mysql_user">root</variable> <variable name="mysql_password">root</variable> <variable name="mysql_database">portal</variable> </environment> </environments> </config>