Zend_Uri Panoramica Zend_Uri è un componente che fornisce supporto nella manipolazione e validazione di Uniform Resource Identifier (URI). Zend_Uri esiste principalmente come servizio per altri componenti, ad esempio Zend_Http_Client, ma è altrettanto utile come componente autonomo. Gli URI cominciano sempre con uno schema, seguito da ':' (due punti). La costruzione dei differenti tipi di schema varia sensibilmente. La classe Zend_Uri fornisce un metodo factory che restituisce una sottoclasse di se stessa specializzata su uno schema specifico. La sotto classe è chiamata Zend_Uri_<scheme>, dove <scheme> è lo schema in caratteri minuscoli con la prima lettera maiuscola. Lo schema HTTPS rappresenta un'eccezione alla regola poiché è anch'esso gestito da Zend_Uri_Http. Creazione di un nuovo URI Zend_Uri costruirà un nuovo URI da zero solo se lo schema è passato a Zend_Uri::factory(). Esempio di creazione di un nuovo URI con <code>Zend_Uri::factory()</code> Per creare un nuovo URI da zero è sufficiente passare solo lo schema a Zend_Uri::factory()Al momento in cui si scrive, Zend_Uri supporta solo gli schemi HTTP e HTTPS. . Se si fornisce uno schema non supportato verrà generata un'eccezione Zend_Uri_Exception. Se lo schema o l'URI fornito è supportato, Zend_Uri::factory() restituirà una sottoclasse di se stessa specializzata nello schema da creare. Manipolazione di un URI esistente Per manipolare un URI esistente passare l'intero URI aZend_Uri::factory(). Esempio di manipolazione di un URI esistente con <code>Zend_Uri::factory()</code> L'URI è parsato e validato. Se l'URI non è valido verrà immediatamente generata un'eccezione Zend_Uri_Exception. Altrimenti, Zend_Uri::factory() restituirà una sottoclasse di se stessa specializzata nello schema da manipolare. Validazione di un URI Si può usare la funzione Zend_Uri::check() se è solo necessario validare un URI esistente. Esempio di validazione di un URI con <code>Zend_Uri::check()</code> Zend_Uri::check() restituisce un booleano, una forma molto più conveniente che utilizzare Zend_Uri::factory() e catturare l'eccezione. Metodi d'istanza in comune Ogni istanza di una sottoclasse diZend_Uri (es. Zend_Uri_Http) contiene diversi metodi d'istanza utili per lavorare con ogni tipo di URI. Restituzione dello Schema dell'URI Lo schema dell'URI è la parte dell'URI che precede i ":" (due punti). Per esempio, in http://www.zend.com lo schema è http. Esempio di restituzione dello schema di un oggetto <code>Zend_Uri_*</code> getScheme(); // "http"]]> Il metodo d'istanza getScheme() restituisce solo la parte corrispondente allo schema dell'oggetto URI. Restituzione dell'intero URI Esempio di restituzione dell'intero URI di un oggetto <code>Zend_Uri_*</code> getUri(); // "http://www.zend.com"]]> Il metodo getUri() restituisce una stringa corrispondente alla rappresentazione dell'intero URI. Validazione dell'URI Zend_Uri::factory() esegue sempre una validazione dell'URI passato e non crea una nuova istanza di una sottoclasse di Zend_Uri se l'URI fornito è invalido. Tuttavia, dopo la creazione di un'istanza di una sottoclasse di Zend_Uri da un nuovo URI o da uno esistente, è possibile che l'URI diventi invalido successivamente ad una manipolazione. Esempio di validazione di un oggetto <code>Zend_Uri_*</code> valid(); // TRUE]]> Il metodo d'istanza valid() fornisce un modo per controllare che l'oggetto URI sia ancora valido.