Zend_Config_Xml Zend_Config_Xml permite aos desenvolvedores armazenarem os dados de configuração em um formato XML simples e lê-los através de uma sintaxe de propriedade de objeto aninhado. O nome do elemento raiz do arquivo ou string XML é irrelevante e pode ser escolhido. O primeiro nível dos elementos XML corresponde às seções de dados de configuração. O formato XML suporta organização hierárquica para o aninhamento dos elementos XML abaixo dos elementos de seção-nível. O conteúdo de uma folha de elemento XML (leaf) corresponde ao valor de um dado de configuração. Herança de seção é suportada por um atributo XML especial chamado extends, e o valor deste atributo corresponde à seção a que a informação deve ser herdada. Tipo de Retorno Os dados de configuração lidos em Zend_Config_Xml são sempre retornados como strings. A conversão de dados de strings para outros tipos é deixado para os desenvolvedores de acordo com suas necessidades específicas. Usando o Zend_Config_Xml Este exemplo ilustra uma utilização básica de Zend_Config_Xml para carregar dados de configuração de um arquivo XML. Neste exemplo, existem dados de configuração, tanto para um sistema de produção como para um sistema de testes. Pois os dados de configuração de um sistema de testes são muito semelhantes aos de produção, a seção de testes herda da seção de produção. Neste caso, a decisão é arbitrária e poderia ter sido escrita de modo inverso, com a seção de produção herdando da seção de testes, embora isso possa não ser o caso em situações mais complexas. Suponha-se, então, que os dados de configuração a seguir estão contidos em /path/to/config.xml: www.example.com pdo_mysql db.example.com dbuser secret dbname dev.example.com devuser devsecret ]]> Em seguida, suponha que o desenvolvedor do aplicativo necessite dos dados de configuração de testes do arquivo XML. É o simples caso de carregar esses dados especificando o arquivo XML e a seção de testes: database->params->host; // prints "dev.example.com" echo $config->database->params->dbname; // prints "dbname" ]]> Usando os Atributos de Tag no Zend_Config_Xml Zend_Config_Xml também suporta outras duas maneiras para definir os nós na configuração. Ambas fazem uso de atributos. A partir do momento que os atributos extends e value são palavras-chaves reservadas (o último através segunda maneira de uso dos atributos), eles não poderão ser utilizados. A primeira maneira usar os atributos é adicionar um nó pai, assim eles serão interpretados como um filho deste nó: ]]> A outra maneira não encurta realmente a configuração, mas a torna mais fácil para manter, pois você não tem que escrever o nome da tag duas vezes. Você simplesmente cria uma tag vazia com o valor no atributo value: www.example.com ]]> Strings XML Zend_Config_Xml é capaz de carregar uma string XML diretamente, por exemplo, uma que foi recuperada de um banco de dados. A string é passada como primeiro parâmetro para o construtor e deve começar com os caracteres '<?xml': EOT; $config = new Zend_Config_Xml($string, 'staging'); ]]> Namespace XML do Zend_Config Zend_Config vem com sua próprio namespace XML, que adiciona funcionalidade adicional ao processo de análise. Para aproveitá-la, você tem que definir um namespace com o namespace URI http://framework.zend.com/xml/zend-config-xml/1.0/ em seu nó raiz de configuração. Com o namespace habilitado, você pode usar constantes do PHP dentro de arquivos de configuração. Além disso, o atributo extends foi transferido para um novo namespace e está depreciado no namespace NULL. Ele será completamente removido no Zend Framework 2.0. /library EOT; define('APPLICATION_PATH', dirname(__FILE__)); $config = new Zend_Config_Xml($string, 'staging'); echo $config->includePath; // Prints "/var/www/something/library" ]]>