php - How to preserve application.ini paths using Zend_Config_Writer_Ini -
php - How to preserve application.ini paths using Zend_Config_Writer_Ini -
i'm working on build scheme in phing takes zend framework project template , configures according phing parameters. 1 problem i've come across when using zend_config_writer_ini.
my phing task takes pre-populated file repo called application.default.ini , modifies using zend_config_ini add together parameters build file (db details, etc). writes application.ini ready project use. simplified version of related task code looks this:
$appconfig = new zend_config_ini( $appdefaultconfigpath, null, array( 'skipextends' => true, 'allowmodifications' => true ) ); $appconfig->production->resources->db->params->host = $buildproperties->db->host; $appconfig->production->resources->db->params->username = $buildproperties->db->username; $appconfig->production->resources->db->params->password = $buildproperties->db->password; $appconfig->production->resources->db->params->dbname = $buildproperties->db->dbname; $writer = new zend_config_writer_ini(); $writer->setconfig($appconfig) ->setfilename($appconfigpath) ->write();
this works fine far database credentials go when comes pre-populated paths include defined constants goes wrong. example:
bootstrap.path = application_path "/bootstrap.php"
becomes:
bootstrap.path = "application_path/bootstrap.php"
is there way preserve these config lines when reading/writing different ini files or should restructure build file re-create file before running task , modify ini lines need change?
when load existing config constants translated, i.e. if @ object print_r won't find constants anymore. hence, author total path printed instead of constants.
in case guess constants don't exist in environment , hence printed is.
update: more specific. zend_config_ini::_parseinifile()
uses parse_ini_file()
read ini file loads constants real paths. see php.net doc illustration #2
php zend-framework ini phing zend-config
Comments
Post a Comment