Zend_Config-Introduction.xml 4.3 KB

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