Zend_Uri.xml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <sect1 id="zend.uri.chapter">
  2. <title>Zend_Uri</title>
  3. <sect2 id="zend.uri.overview">
  4. <title>Wstęp</title>
  5. <para>
  6. <code>Zend_Uri</code> jest komponentem, który pomaga w manipulowaniu i
  7. sprawdzaniu poprawności adresem
  8. <ulink url="http://www.w3.org/Addressing/">Uniform Resource Identifier</ulink>
  9. (URI). Klasa <code>Zend_Uri</code> istnieje głownie aby obsłużyć inne
  10. komponenty takie jak na przykład <code>Zend_Http_Client</code> ale także
  11. jest użyteczna jako osobne narzędzie.
  12. </para>
  13. <para>
  14. Adresy URI zawsze zaczynają się nazwą schematu zakończoną średnikiem.
  15. Konstrukcje różnych schematów różnią się od siebie znacząco. Klasa
  16. <code>Zend_Uri</code> zapewnia fabrykę, która zwracą swoją podklasę
  17. specjalizującą się w danym schemacie. Podklasa będzie nazwana
  18. <code>Zend_Uri_&lt;scheme&gt;</code>, gdzie
  19. <code>&lt;scheme&gt;</code> jest nazwą schematu zamienioną na małe litery
  20. z pierwszą literą zamienioną na wielką. Wyjątkiem od tej reguły jest
  21. schemat HTTPS, który także jest obsługiwany przez klasę
  22. <code>Zend_Uri_Http</code>.
  23. </para>
  24. </sect2>
  25. <sect2 id="zend.uri.creation">
  26. <title>Tworzenie nowego URI</title>
  27. <para>
  28. <code>Zend_Uri</code> zbuduje nowy URI z szablonu jeśli do metody
  29. <code>Zend_Uri::factory()</code> przekazana jest tylko nazwa schematu.
  30. </para>
  31. <example id="zend.uri.creation.example-1">
  32. <title>Tworzenie nowego URI za pomocą <code>Zend_Uri::factory()</code></title>
  33. <programlisting role="php"><![CDATA[
  34. // Aby utworzyć URI z szablonu, przekaż tylko schemat.
  35. $uri = Zend_Uri::factory('http');
  36. // $uri jest instancją Zend_Uri_Http
  37. ]]>
  38. </programlisting>
  39. </example>
  40. <para>
  41. Aby utworzyć nowy URI z szablonu, przekaż tylko nazwę schematu do metody
  42. <code>Zend_Uri::factory()</code><footnote><para>Obecnie, Zend_Uri
  43. obsługuje tylko schematy HTTP oraz HTTPS.</para></footnote>. Jeśli
  44. przekazana jest nazwa nieobsługiwanego schematu, wyrzucony będzie
  45. wyjątek <code>Zend_Uri_Exception</code>.
  46. </para>
  47. <para>
  48. Jeśli schemat lub przekazany URI jest obsługiwany, metoda
  49. <code>Zend_Uri::factory()</code> zwróci swoją podklasę, która specjalizuje
  50. się w schemacie który ma zostać utworzony.
  51. </para>
  52. </sect2>
  53. <sect2 id="zend.uri.manipulation">
  54. <title>Manipulowanie istniejącym URI</title>
  55. <para>
  56. Aby manipulować istniejącym URI, przekaż cały URI do
  57. <code>Zend_Uri::factory()</code>.
  58. </para>
  59. <example id="zend.uri.manipulation.example-1">
  60. <title>Manipulowanie istniejącym URI za pomocą <code>Zend_Uri::factory()</code></title>
  61. <programlisting role="php"><![CDATA[
  62. // Aby manipulować istniejącym URI, przekaż go do metody fabryki.
  63. $uri = Zend_Uri::factory('http://www.zend.com');
  64. // $uri jest instancją Zend_Uri_Http
  65. ]]>
  66. </programlisting>
  67. </example>
  68. <para>
  69. URI zostanie przetworzony i zostanie sprawdzona jego poprawność. Jeśli
  70. okaże się, że jest niepoprawny, od razu zostanie wyrzucony wyjątek
  71. <code>Zend_Uri_Exception</code>. W przeciwnym wypadku, metoda
  72. <code>Zend_Uri::factory()</code> zwróci swoją podklasę specjalizującą
  73. się w schemacie URI, którym chcemy manipulować.
  74. </para>
  75. </sect2>
  76. <sect2 id="zend.uri.validation">
  77. <title>Sprawdzanie poprawności URI</title>
  78. <para>
  79. Funkcja <code>Zend_Uri::check()</code> może być użyta jeśli potrzebne
  80. jest tylko sprawdzenie poprawności istniejącego URI.
  81. </para>
  82. <example id="zend.uri.validation.example-1">
  83. <title>Sprawdzanie poprawności URI za pomocą <code>Zend_Uri::check()</code></title>
  84. <programlisting role="php"><![CDATA[
  85. // Sprawdź czy podany URI ma poprawny format
  86. $valid = Zend_Uri::check('http://uri.in.question');
  87. // $valid ma wartość TRUE dla poprawnego URI, lub FALSE w przeciwnym wypadku.
  88. ]]>
  89. </programlisting>
  90. </example>
  91. <para>
  92. <code>Zend_Uri::check()</code> zwraca wartość logiczną, co jest bardziej
  93. wygodne niż używanie <code>Zend_Uri::factory()</code> i wyłapywanie
  94. wyjątku.
  95. </para>
  96. </sect2>
  97. <sect2 id="zend.uri.instance-methods">
  98. <title>Wspólne metody instancji</title>
  99. <para>
  100. Każda instancja podklasy <code>Zend_Uri</code> (np.
  101. <code>Zend_Uri_Http</code>) ma kilka metod, ktore są użyteczne do pracy
  102. z rożnego rodzaju URI.
  103. </para>
  104. <sect3 id="zend.uri.instance-methods.getscheme">
  105. <title>Pobieranie schematu URI</title>
  106. <para>
  107. Nazwa schematu URI jest częścią URI, która znajduje się przed dwukropkiem. Na przykład
  108. nazwą schematu adresu <code>http://www.zend.com</code> jest <code>http</code>.
  109. </para>
  110. <example id="zend.uri.instance-methods.getscheme.example-1">
  111. <title>Pobieranie schematu z obiektu <code>Zend_Uri_*</code></title>
  112. <programlisting role="php"><![CDATA[
  113. $uri = Zend_Uri::factory('http://www.zend.com');
  114. $scheme = $uri->getScheme(); // "http"
  115. ]]>
  116. </programlisting>
  117. </example>
  118. <para>
  119. Metoda <code>getScheme()</code> zwraca tylko schemat z obiektu URI.
  120. </para>
  121. </sect3>
  122. <sect3 id="zend.uri.instance-methods.geturi">
  123. <title>Pobieranie całego URI</title>
  124. <example id="zend.uri.instance-methods.geturi.example-1">
  125. <title>Pobieranie całego URI z obiektu <code>Zend_Uri_*</code></title>
  126. <programlisting role="php"><![CDATA[
  127. $uri = Zend_Uri::factory('http://www.zend.com');
  128. echo $uri->getUri(); // "http://www.zend.com"
  129. ]]>
  130. </programlisting>
  131. </example>
  132. <para>
  133. Metoda <code>getUri()</code> zwraca reprezentację całego URI jako
  134. łańcuch znaków.
  135. </para>
  136. </sect3>
  137. <sect3 id="zend.uri.instance-methods.valid">
  138. <title>Sprawdzanie poprawności URI</title>
  139. <para>
  140. <code>Zend_Uri::factory()</code> zawsze sprawdzi poprawność przekazanego
  141. do niej URI i nie utworzy nowej instancji podklasy <code>Zend_Uri</code>
  142. jeśli podany adres URI jest niepoprawny. Jakkolwiek, po tym jak zostanie
  143. utworzona instancja podklasy <code>Zend_Uri</code> dla nowego URI lub
  144. dla poprawnego istniejącego, możliwe jest to, że URI później może stać
  145. się niepoprawny, po tym jak będziemy nim manipulować.
  146. </para>
  147. <example id="zend.uri.instance-methods.valid.example-1">
  148. <title>Sprawdzanie poprawności obiektu <code>Zend_Uri_*</code></title>
  149. <programlisting role="php"><![CDATA[
  150. $uri = Zend_Uri::factory('http://www.zend.com');
  151. $isValid = $uri->valid(); // TRUE
  152. ]]>
  153. </programlisting>
  154. </example>
  155. <para>
  156. Metoda <code>valid()</code> zapewnia możliwość sprawdzenia czy obiekt
  157. URI jest wciąż poprawny.
  158. </para>
  159. </sect3>
  160. </sect2>
  161. </sect1>