Zend_Uri Wstęp Zend_Uri jest komponentem, który pomaga w manipulowaniu i sprawdzaniu poprawności adresem Uniform Resource Identifier (URI). Klasa Zend_Uri istnieje głownie aby obsłużyć inne komponenty takie jak na przykład Zend_Http_Client ale także jest użyteczna jako osobne narzędzie. Adresy URI zawsze zaczynają się nazwą schematu zakończoną średnikiem. Konstrukcje różnych schematów różnią się od siebie znacząco. Klasa Zend_Uri zapewnia fabrykę, która zwracą swoją podklasę specjalizującą się w danym schemacie. Podklasa będzie nazwana Zend_Uri_<scheme>, gdzie <scheme> jest nazwą schematu zamienioną na małe litery z pierwszą literą zamienioną na wielką. Wyjątkiem od tej reguły jest schemat HTTPS, który także jest obsługiwany przez klasę Zend_Uri_Http. Tworzenie nowego URI Zend_Uri zbuduje nowy URI z szablonu jeśli do metody Zend_Uri::factory() przekazana jest tylko nazwa schematu. Tworzenie nowego URI za pomocą <code>Zend_Uri::factory()</code> Aby utworzyć nowy URI z szablonu, przekaż tylko nazwę schematu do metody Zend_Uri::factory()Obecnie, Zend_Uri obsługuje tylko schematy HTTP oraz HTTPS.. Jeśli przekazana jest nazwa nieobsługiwanego schematu, wyrzucony będzie wyjątek Zend_Uri_Exception. Jeśli schemat lub przekazany URI jest obsługiwany, metoda Zend_Uri::factory() zwróci swoją podklasę, która specjalizuje się w schemacie który ma zostać utworzony. Manipulowanie istniejącym URI Aby manipulować istniejącym URI, przekaż cały URI do Zend_Uri::factory(). Manipulowanie istniejącym URI za pomocą <code>Zend_Uri::factory()</code> URI zostanie przetworzony i zostanie sprawdzona jego poprawność. Jeśli okaże się, że jest niepoprawny, od razu zostanie wyrzucony wyjątek Zend_Uri_Exception. W przeciwnym wypadku, metoda Zend_Uri::factory() zwróci swoją podklasę specjalizującą się w schemacie URI, którym chcemy manipulować. Sprawdzanie poprawności URI Funkcja Zend_Uri::check() może być użyta jeśli potrzebne jest tylko sprawdzenie poprawności istniejącego URI. Sprawdzanie poprawności URI za pomocą <code>Zend_Uri::check()</code> Zend_Uri::check() zwraca wartość logiczną, co jest bardziej wygodne niż używanie Zend_Uri::factory() i wyłapywanie wyjątku. Wspólne metody instancji Każda instancja podklasy Zend_Uri (np. Zend_Uri_Http) ma kilka metod, ktore są użyteczne do pracy z rożnego rodzaju URI. Pobieranie schematu URI Nazwa schematu URI jest częścią URI, która znajduje się przed dwukropkiem. Na przykład nazwą schematu adresu http://www.zend.com jest http. Pobieranie schematu z obiektu <code>Zend_Uri_*</code> getScheme(); // "http" ]]> Metoda getScheme() zwraca tylko schemat z obiektu URI. Pobieranie całego URI Pobieranie całego URI z obiektu <code>Zend_Uri_*</code> getUri(); // "http://www.zend.com" ]]> Metoda getUri() zwraca reprezentację całego URI jako łańcuch znaków. Sprawdzanie poprawności URI Zend_Uri::factory() zawsze sprawdzi poprawność przekazanego do niej URI i nie utworzy nowej instancji podklasy Zend_Uri jeśli podany adres URI jest niepoprawny. Jakkolwiek, po tym jak zostanie utworzona instancja podklasy Zend_Uri dla nowego URI lub dla poprawnego istniejącego, możliwe jest to, że URI później może stać się niepoprawny, po tym jak będziemy nim manipulować. Sprawdzanie poprawności obiektu <code>Zend_Uri_*</code> valid(); // TRUE ]]> Metoda valid() zapewnia możliwość sprawdzenia czy obiekt URI jest wciąż poprawny.