Zend_Config-Introduction.xml 4.6 KB

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