Zend_Config-Introduction.xml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <sect1 id="zend.config.introduction">
  2. <title>Wprowadzenie</title>
  3. <para>
  4. Klasa <code>Zend_Config</code> została stworzona aby uprościć użycie
  5. danych konfiguracyjnych w aplikacjach. Dostarcza ona interfejs bazujący
  6. na właściwościach obiektów służący do odczytywania danych
  7. konfiguracyjnych wewnątrz kodu aplikacji. Dane konfiguracyjne mogą 
  8. pochodzić z różnego rodzaju źródeł, w których dane konfiguracyjne są
  9. przechowywane hierarchiczne. Obecnie <code>Zend_Config</code> dostarcza
  10. klasy obsługujące dane konfiguracyjne przechowywane w plikach tekstowych:
  11. <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link>, oraz
  12. <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link>.
  13. </para>
  14. <example id="zend.config.introduction.example.using">
  15. <title>Użycie Zend_Config</title>
  16. <para>
  17. Normalnie jest tak, że użytkownicy użyliby jednej z klas adaptera,
  18. takiej jak <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link>
  19. czy <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link>,
  20. ale dane konfiguracyjne mogą być też dostępne w tablicy PHP. Można w prosty
  21. sposób przekazać tablicę do konstruktora <code>Zend_Config</code> w celu
  22. uzyskania obiektu zawierającego dane konfiguracyjne:
  23. </para>
  24. <programlisting role="php"><![CDATA[
  25. // Tablica danych konfiguracyjnych
  26. $configArray = array(
  27. 'webhost' => 'www.example.com',
  28. 'database' => array(
  29. 'adapter' => 'pdo_mysql',
  30. 'params' => array(
  31. 'host' => 'db.example.com',
  32. 'username' => 'dbuser',
  33. 'password' => 'secret',
  34. 'dbname' => 'mydatabase'
  35. )
  36. )
  37. );
  38. // Tworzy obiekt konfiguracji na podstawie danych konfiguracyjnych
  39. $config = new Zend_Config($configArray);
  40. // Wyświetlenie wpisu z konfiguracji (wynikiem jest 'www.example.com')
  41. echo $config->webhost;
  42. // Użycie danych konfiguracyjnych w celu połączenia się z bazą danych
  43. $db = Zend_Db::factory($config->database->adapter,
  44. $config->database->params->toArray());
  45. // Alternartywne użycie: przekazanie obiektu Zend_Config.
  46. // Metoda kklasy Zend_Db wie jak zinterpretować dane.
  47. $db = Zend_Db::factory($config->database);
  48. ]]>
  49. </programlisting>
  50. </example>
  51. <para>
  52. Jak zostało pokazane w powyższym przykładzie, klasa <code>Zend_Config</code>
  53. zapewnia składnię zagnieżdżonych właściwości obiektów w celu uzyskania
  54. dostępu do danych konfiguracyjnych przekazanych do konstruktora.
  55. </para>
  56. <para>
  57. Oprócz zorientowanego obiektowo dostępu do wartości klasa
  58. <code>Zend_Config</code> posiada także metodę <code>get()</code>
  59. umożliwiającą zwrócenie podanej domyślnej wartości jeśli element nie
  60. istnieje. Na przykład:
  61. </para>
  62. <programlisting role="php"><![CDATA[
  63. $host = $config->database->get('host', 'localhost');
  64. ]]>
  65. </programlisting>
  66. <example id="zend.config.introduction.example.file.php">
  67. <title>Użycie Zend_Config z plikiem konfiguracyjnym PHP</title>
  68. <para>
  69. Często wskazane może być użycie do konfiguracji zwykłego pliku PHP.
  70. Poniższy kod pokazuje w jak łatwy sposób można to zrobić:
  71. </para>
  72. <programlisting role="php"><![CDATA[
  73. return array(
  74. 'webhost' => 'www.example.com',
  75. 'database' => array(
  76. 'adapter' => 'pdo_mysql',
  77. 'params' => array(
  78. 'host' => 'db.example.com',
  79. 'username' => 'dbuser',
  80. 'password' => 'secret',
  81. 'dbname' => 'mydatabase'
  82. )
  83. )
  84. );
  85. ]]>
  86. </programlisting>
  87. <programlisting role="php"><![CDATA[
  88. // Załadowanie konfiguracji
  89. $config = new Zend_Config(require 'config.php');
  90. // Wyświetlenie danych konfiguracyjnych (powoduje wyświetlenie 'www.example.com')
  91. echo $config->webhost;
  92. ]]>
  93. </programlisting>
  94. </example>
  95. </sect1>