Zend_Config-Introduction.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15103 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.config.introduction">
  5. <title>Introducción</title>
  6. <para>
  7. <classname>Zend_Config</classname>
  8. está diseñado para simplificar el acceso y el uso de datos de
  9. configuración dentro de aplicaciones. Provee una interfaz de
  10. usuario basada en propiedades de objetos anidadas para acceder a
  11. datos de configuración dentro del código de la aplicación. Los
  12. datos de configuración pueden venir de multitud de medios que
  13. soporten almacenamiento de datos de forma jerárquica.
  14. Actualmente
  15. <classname>Zend_Config</classname>
  16. provee adaptadores para datos de configuración que están
  17. almacenados en archivos de texto con
  18. <link linkend="zend.config.adapters.ini">
  19. <classname>Zend_Config_Ini</classname>
  20. </link>
  21. y
  22. <link linkend="zend.config.adapters.xml">
  23. <classname>Zend_Config_Xml</classname>
  24. </link>
  25. .
  26. </para>
  27. <example id="zend.config.introduction.example.using">
  28. <title>Usando Zend_Config Per Se</title>
  29. <para>
  30. Normalmente, se espera que los usuarios usen
  31. una de las clases adaptadoras como
  32. <link linkend="zend.config.adapters.ini">
  33. <classname>Zend_Config_Ini</classname>
  34. </link>
  35. o
  36. <link linkend="zend.config.adapters.xml">
  37. <classname>Zend_Config_Xml</classname>
  38. </link>
  39. , pero si los datos de configuración están disponibles
  40. en un array PHP, se puede simplemente pasar los datos al
  41. constructor
  42. <classname>Zend_Config</classname>
  43. para utilizar una interfaz simple orientada a objetos:
  44. </para>
  45. <programlisting language="php"><![CDATA[
  46. // Dado un array de datos de configuración
  47. $configArray = array(
  48. 'webhost' => 'www.example.com',
  49. 'database' => array(
  50. 'adapter' => 'pdo_mysql',
  51. 'params' => array(
  52. 'host' => 'db.example.com',
  53. 'username' => 'dbuser',
  54. 'password' => 'secret',
  55. 'dbname' => 'mydatabase'
  56. )
  57. )
  58. );
  59. // Crea el objeto a partir de los datos de configuración
  60. $config = new Zend_Config($configArray);
  61. // Muestra un dato de configuración (resultado: 'www.example.com')
  62. echo $config->webhost;
  63. // Use los datos de configuración para conectarse a la base de datos
  64. $db = Zend_Db::factory($config->database->adapter,
  65. $config->database->params->toArray());
  66. // Uso alternativo: simplemente pase el objeto Zend_Config.
  67. // La Zend_Db factory sabe cómo interpretarlo.
  68. $db = Zend_Db::factory($config->database);
  69. ]]></programlisting>
  70. </example>
  71. <para>
  72. Como se ilustra en el ejemplo de arriba,
  73. <classname>Zend_Config</classname>
  74. provee una sintáxis de propiedades de objetos anidados para acceder a datos de configuración
  75. pasados a su constructor.
  76. </para>
  77. <para>
  78. Junto al acceso a valores de datos orientado a objetos,
  79. <classname>Zend_Config</classname>
  80. también tiene el método
  81. <methodname>get()</methodname>
  82. que devolverá el valor por defecto suministrado si el elemento
  83. de datos no existe. Por ejemplo:
  84. </para>
  85. <programlisting language="php"><![CDATA[
  86. $host = $config->database->get('host', 'localhost');
  87. ]]></programlisting>
  88. <example id="zend.config.introduction.example.file.php">
  89. <title>Usando Zend_Config con un Archivo de Configuración PHP</title>
  90. <para>
  91. A veces, es deseable usar un archivo de configuración
  92. puramente PHP. El código siguiente ilustra cómo podemos conseguir
  93. esto fácilmente:
  94. </para>
  95. <programlisting language="php"><![CDATA[
  96. // config.php
  97. return array(
  98. 'webhost' => 'www.example.com',
  99. 'database' => array(
  100. 'adapter' => 'pdo_mysql',
  101. 'params' => array(
  102. 'host' => 'db.example.com',
  103. 'username' => 'dbuser',
  104. 'password' => 'secret',
  105. 'dbname' => 'mydatabase'
  106. )
  107. )
  108. );
  109. ]]></programlisting>
  110. <programlisting language="php"><![CDATA[
  111. // Lectura de la configuración
  112. $config = new Zend_Config(require 'config.php');
  113. // Muestra un dato de configuración (resultado: 'www.example.com')
  114. echo $config->webhost;
  115. ]]></programlisting>
  116. </example>
  117. </sect1>
  118. <!--
  119. vim:se ts=4 sw=4 et:
  120. -->