Zend_Uri Privire de ansamblu Zend_Uri este o componentă care ajută la manipularea şi validarea Identificatorilor uniformi de resurse (URI-uri). Zend_Uri există în primul rând pentru a servi alte componente cum ar fi Zend_Http_Client, dar este utilă şi ca o componentă de sine stătătoare. URI-urile încep întotdeauna cu schema, urmată de caracterul două puncte. Construcţia diverselor şi multiplelor scheme diferă semnificativ. Clasa Zend_Uri dispune de o fabrică (factory) care creează o subclasă a sa specializată pentru fiecare schemă. Subclasa se va numi Zend_Uri_<schemă>, unde <schemă> este schema scrisă cu litere mici şi prima literă majusculă. O excepţie de la această regulă este HTTPS, care e de asemenea gestionată de Zend_Uri_Http. Crearea unui nou identificator de resursă (URI) Zend_Uri va construi un nou URI de la zero doar dacă pasaţi o schemă metodei Zend_Uri::factory(). Crearea unui nou URI cu <code>Zend_Uri::factory()</code> ]]> Pentru a crea un nou identificator de resursă (URI) de la zero, pasaţi metodei Zend_Uri::factory() doar schema. La momentul acestei scrieri, Zend_Uri suporta doar schemele HTTP şi HTTPS. . Dacă se pasează o schemă nesuportată, va fi aruncată o excepţie Zend_Uri_Exception. Dacă schema sau identificatorul de resursă pasat este suportat, Zend_Uri::factory() va întoarce o subclasă a ei care este specializată în schema care trebuie creată. Manipularea unui identificator de resursă (URI) existent Pentru a manipula un identificator de resursă existent, pasaţi întregul identificator (URI) metodei Zend_Uri::factory(). Manipularea unui identificator de resursă (UR) existent cu <code>Zend_Uri::factory()</code> ]]> Identificatorul de resursă va fi analizat şi validat. Dacă e găsit invalid, va fi aruncată o excepţie Zend_Uri_Exception imediat. În caz contrar, Zend_Uri::factory() va întoarce o subclasă a sa care este specializată în schema care urmează a fi manipulată. Validarea unui URI Funcţia Zend_Uri::check() poate fi utilizată doar dacă validarea unui URI existent este necesară într-un moment anume. Validarea unui URI cu <code>Zend_Uri::check()</code> ]]> Zend_Uri::check() întoarce rezultatul operaţiei ca tip boolean, lucru care se poate dovedi mai convenabil decât folosirea metodei Zend_Uri::factory() şi prinderea excepţiei. Metode obişnuite de creat instanţe Fiecare instanţă a unei subclase Zend_Uri (ex: Zend_Uri_Http) are mai multe metode de instanţiere care se dovedesc a fi utile în lucrul cu orice tip de URI. Obţinerea schemei identificatorului (URI) Schema unui URI este partea acelui URI care precedă caracterul două puncte. De exemplu, schema identificatorului http://www.zend.com este http. Obţinerea schemei dintr-un obiect <code>Zend_Uri_*</code> getScheme(); // "http"]]> Metoda getScheme() întoarce doar partea din URI care conţine schema obiectului URI. Obţinerea întregului identificator (URI) Obţinerea întregului identificator dintr-un obiect <code>Zend_Uri_*</code> getUri(); // "http://www.zend.com"]]> Metoda getUri() întoarce textul reprezentând întregul URI. Validarea unui identificator (URI) Zend_Uri::factory() va valida întotdeauna orice URI pasat ei şi nu va crea o nouă instanţă de subclasă Zend_Uri dacă identificatorul pasat nu este valid. Cu toate acestea, după ce subclasa Zend_Uri este instanţiată pentru un nou URI sau unul existent şi valid, e posibil ca identificatorul să devină ulterior invalid datorită manipulării părţilor sale componente. Validarea unui obiect <code>Zend_Uri_*</code> valid(); // TRUE]]> Metoda valid() oferă o cale de a verifica dacă un obiect URI este încă valid.