Como preservar os caminhos application.ini usando Zend_Config_Writer_Ini
Atualmente, estou trabalhando em um sistema de compilação no Phing que pega um modelo de projeto do Zend Framework e o configura de acordo com os parâmetros do Phing. Um problema que me deparei é ao usar o Zend_Config_Writer_Ini.
tarefa @My Phing pega um arquivo pré-preenchido do repositório chamado application.default.ini e modifica isso usando Zend_Config_Ini para adicionar parâmetros do arquivo de compilação (detalhes do banco de dados, etc.). Em seguida, ele é gravado no application.ini, pronto para uso do projeto. Uma versão simplificada do código de tarefa relacionado é mais ou menos assim:
$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();
Isso funciona bem no que diz respeito às credenciais do banco de dados, mas quando se trata de caminhos pré-preenchidos que incluem constantes definidas, algo dá errado. Por exemplo
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
torna-se
bootstrap.path = "APPLICATION_PATH/Bootstrap.php"
Existe alguma maneira de preservar essas linhas de configuração ao ler / gravar em diferentes arquivos ini ou devo reestruturar meu arquivo de compilação para copiar o arquivo antes de executar a tarefa e modificar apenas as linhas ini que preciso altera