Zend_Uri.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <sect1 id="zend.uri.chapter">
  2. <title>Zend_Uri</title>
  3. <sect2 id="zend.uri.overview">
  4. <title>Panoramica</title>
  5. <para>
  6. <code>Zend_Uri</code> è un componente che fornisce supporto nella manipolazione e validazione di
  7. <ulink url="http://www.w3.org/Addressing/">Uniform Resource Identifier</ulink> (URI).
  8. <code>Zend_Uri</code> esiste principalmente come servizio per altri componenti, ad esempio <code>Zend_Http_Client</code>, ma è altrettanto utile come componente autonomo.
  9. </para>
  10. <para>
  11. Gli URI cominciano sempre con uno schema, seguito da ':' (due punti).
  12. La costruzione dei differenti tipi di schema varia sensibilmente.
  13. La classe <code>Zend_Uri</code> fornisce un metodo factory che restituisce una sottoclasse di se stessa specializzata su uno schema specifico.
  14. La sotto classe è chiamata <code>Zend_Uri_&lt;scheme&gt;</code>, dove <code>&lt;scheme&gt;</code> è lo schema in caratteri minuscoli con la prima lettera maiuscola.
  15. Lo schema HTTPS rappresenta un'eccezione alla regola poiché è anch'esso gestito da <code>Zend_Uri_Http</code>.
  16. </para>
  17. </sect2>
  18. <sect2 id="zend.uri.creation">
  19. <title>Creazione di un nuovo URI</title>
  20. <para>
  21. <code>Zend_Uri</code> costruirà un nuovo URI da zero solo se lo schema è passato a <code>Zend_Uri::factory()</code>.
  22. </para>
  23. <example id="zend.uri.creation.example-1">
  24. <title>Esempio di creazione di un nuovo URI con <code>Zend_Uri::factory()</code></title>
  25. <programlisting role="php"><![CDATA[<?php
  26. require_once 'Zend/Uri.php';
  27. // Per creare un nuovo URI da zero, passare solo lo schema
  28. $uri = Zend_Uri::factory('http');
  29. // $uri instanceof Zend_Uri_Http]]>
  30. </programlisting>
  31. </example>
  32. <para>
  33. Per creare un nuovo URI da zero è sufficiente passare solo lo schema a <code>Zend_Uri::factory()</code><footnote><para>Al momento in cui si scrive, Zend_Uri supporta solo gli schemi HTTP e HTTPS.</para></footnote> .
  34. Se si fornisce uno schema non supportato verrà generata un'eccezione <code>Zend_Uri_Exception</code>.
  35. </para>
  36. <para>
  37. Se lo schema o l'URI fornito è supportato, <code>Zend_Uri::factory()</code> restituirà una sottoclasse di se stessa specializzata nello schema da creare.
  38. </para>
  39. </sect2>
  40. <sect2 id="zend.uri.manipulation">
  41. <title>Manipolazione di un URI esistente</title>
  42. <para>
  43. Per manipolare un URI esistente passare l'intero URI a<code>Zend_Uri::factory()</code>.
  44. </para>
  45. <example id="zend.uri.manipulation.example-1">
  46. <title>Esempio di manipolazione di un URI esistente con <code>Zend_Uri::factory()</code></title>
  47. <programlisting role="php"><![CDATA[<?php
  48. require_once 'Zend/Uri.php';
  49. // Per manipolare un URI esistente, passarlo come parametro
  50. $uri = Zend_Uri::factory('http://www.zend.com');
  51. // $uri instanceof Zend_Uri_Http]]>
  52. </programlisting>
  53. </example>
  54. <para>
  55. L'URI è parsato e validato.
  56. Se l'URI non è valido verrà immediatamente generata un'eccezione <code>Zend_Uri_Exception</code>.
  57. Altrimenti, <code>Zend_Uri::factory()</code> restituirà una sottoclasse di se stessa specializzata nello schema da manipolare.
  58. </para>
  59. </sect2>
  60. <sect2 id="zend.uri.validation">
  61. <title>Validazione di un URI</title>
  62. <para>
  63. Si può usare la funzione <code>Zend_Uri::check()</code> se è solo necessario validare un URI esistente.
  64. </para>
  65. <example id="zend.uri.validation.example-1">
  66. <title>Esempio di validazione di un URI con <code>Zend_Uri::check()</code></title>
  67. <programlisting role="php"><![CDATA[<?php
  68. require_once 'Zend/Uri.php';
  69. // Validazione del formato dell'URI
  70. $valid = Zend_Uri::check('http://uri.in.questione');
  71. // $valid è TRUE per un URI valido, altrimenti FALSE.]]>
  72. </programlisting>
  73. </example>
  74. <para>
  75. <code>Zend_Uri::check()</code> restituisce un booleano, una forma molto più conveniente che utilizzare <code>Zend_Uri::factory()</code> e catturare l'eccezione.
  76. </para>
  77. </sect2>
  78. <sect2 id="zend.uri.instance-methods">
  79. <title>Metodi d'istanza in comune</title>
  80. <para>
  81. Ogni istanza di una sottoclasse di<code>Zend_Uri</code> (es. <code>Zend_Uri_Http</code>) contiene diversi metodi d'istanza utili per lavorare con ogni tipo di URI.
  82. </para>
  83. <sect3 id="zend.uri.instance-methods.getscheme">
  84. <title>Restituzione dello Schema dell'URI</title>
  85. <para>
  86. Lo schema dell'URI è la parte dell'URI che precede i ":" (due punti).
  87. Per esempio, in <code>http://www.zend.com</code> lo schema è <code>http</code>.
  88. </para>
  89. <example id="zend.uri.instance-methods.getscheme.example-1">
  90. <title>Esempio di restituzione dello schema di un oggetto <code>Zend_Uri_*</code></title>
  91. <programlisting role="php"><![CDATA[<?php
  92. require_once 'Zend/Uri.php';
  93. $uri = Zend_Uri::factory('http://www.zend.com');
  94. $scheme = $uri->getScheme(); // "http"]]>
  95. </programlisting>
  96. </example>
  97. <para>
  98. Il metodo d'istanza <code>getScheme()</code> restituisce solo la parte corrispondente allo schema dell'oggetto URI.
  99. </para>
  100. </sect3>
  101. <sect3 id="zend.uri.instance-methods.geturi">
  102. <title>Restituzione dell'intero URI</title>
  103. <example id="zend.uri.instance-methods.geturi.example-1">
  104. <title>Esempio di restituzione dell'intero URI di un oggetto <code>Zend_Uri_*</code></title>
  105. <programlisting role="php"><![CDATA[<?php
  106. require_once 'Zend/Uri.php';
  107. $uri = Zend_Uri::factory('http://www.zend.com');
  108. echo $uri->getUri(); // "http://www.zend.com"]]>
  109. </programlisting>
  110. </example>
  111. <para>
  112. Il metodo <code>getUri()</code> restituisce una stringa corrispondente alla rappresentazione dell'intero URI.
  113. </para>
  114. </sect3>
  115. <sect3 id="zend.uri.instance-methods.valid">
  116. <title>Validazione dell'URI</title>
  117. <para>
  118. <code>Zend_Uri::factory()</code> esegue sempre una validazione dell'URI passato e non crea una nuova istanza di una sottoclasse di <code>Zend_Uri</code> se l'URI fornito è invalido.
  119. Tuttavia, dopo la creazione di un'istanza di una sottoclasse di <code>Zend_Uri</code> da un nuovo URI o da uno esistente, è possibile che l'URI diventi invalido successivamente ad una manipolazione.
  120. </para>
  121. <example id="zend.uri.instance-methods.valid.example-1">
  122. <title>Esempio di validazione di un oggetto <code>Zend_Uri_*</code></title>
  123. <programlisting role="php"><![CDATA[<?php
  124. require_once 'Zend/Uri.php';
  125. $uri = Zend_Uri::factory('http://www.zend.com');
  126. $isValid = $uri->valid(); // TRUE]]>
  127. </programlisting>
  128. </example>
  129. <para>
  130. Il metodo d'istanza <code>valid()</code> fornisce un modo per controllare che l'oggetto URI sia ancora valido.
  131. </para>
  132. </sect3>
  133. </sect2>
  134. </sect1>
  135. <!--
  136. vim:se ts=4 sw=4 et:
  137. -->