Zend_Uri Обзор<!--Overview--> Zend_Uri является компонентой, которая призвана облегчить работу с URI (Uniform Resource Identifiers) и их валидацию. Zend_Uri был создан для обслуживания других компонент, таких, как Zend_Http_Client, но полезен и как отдельная утилита. URI всегда начинаются со схемы, после которой следует двоеточие. Структура для разных схем может сильно отличаться. Класс Zend_Uri предоставляет фабрику (паттерн factory), которая возвращает его подклассы, специализирующиеся в различных схемах. Подклассы называются Zend_Uri_<scheme>, где <scheme> - схема в нижнем регистре, с прописной первой буквой. Исключением из этого правила является HTTPS, который обрабатывается подклассом Zend_Uri_Http. Создание нового URI<!--Creating a New URI--> Zend_Uri будет строить с нуля новый URI, если Zend_Uri::factory() была передана только схема. Создание нового URI с <code>Zend_Uri::factory()</code><!--Creating a New URI with <code>Zend_Uri::factory()</code>--> ]]> Для того, чтобы создать с нуля новый URI, передайте Zend_Uri::factory() только схему. На момент написания этой документации Zend_Uri поддерживает только схемы HTTP и HTTPS.. При передаче не поддерживаемой схемы генерируется исключение Zend_Uri_Exception. Если переданные схема или URI поддерживаются, то Zend_Uri::factory() вернет свой подкласс, который специализируется на данной схеме. Работа с существующим URI<!--Manipulating an Existing URI--> Для того, чтобы работать с существующим URI, передайте его весь целиком Zend_Uri::factory(). Работа с существующим URI с <code>Zend_Uri::factory()</code><!--Manipulating an Existing URI with <code>Zend_Uri::factory()</code>--> ]]> URI будет распарсен и проверен на валидность. Если он оказался невалидным, то сразу же будет сгенерировано исключение Zend_Uri_Exception. Иначе Zend_Uri::factory() вернет свой подкласс, который специализируется на данной схеме. Проверка URI<!--URI Validation--> Функция Zend_Uri::check() может использоваться в том случае, когда нужна только проверка существующего URI. Проверка URI с помощью <code>Zend_Uri::check()</code><!--URI Validation with <code>Zend_Uri::check()</code>--> ]]> Zend_Uri::check() возвращает булево значение, использование этой функции более удобно, чем вызов Zend_Uri::factory() и отлов исключения. Общие методы<!--Common Instance Methods--> Каждый экземпляр подкласса Zend_Uri (т.е. Zend_Uri_Http) имеет несколько методов экземпляров, которые полезны для работы с любыми видами URI. Получение схемы URI<!--Getting the Scheme of the URI--> Схема URI – часть URI, завершающаяся двоеточием. Например, схемой в http://www.zend.com является http. Получение схемы из объекта <code>Zend_Uri_*</code><!--Getting the Scheme from a <code>Zend_Uri_*</code> Object--> getScheme(); // "http" ?>]]> Метод экземпляра getScheme() возвращает схему из URI. Получение всего URI<!--Getting the Entire URI--> Получение всего URI из объекта <code>Zend_Uri_*</code><!--Getting the Entire URI from a <code>Zend_Uri_*</code> Object--> getUri(); // "http://www.zend.com" ?>]]> Метод getUri() возвращает строковое представление всего URI. Проверка URI на валидность<!--Validating the URI--> Zend_Uri::factory() всегда производит синтаксическую проверку переданных ему URI и не будет создавать новый экземпляр подкласса Zend_Uri, если данный URI не прошел проверку. Тем не менее, после того, как был инстанцирован подкласс Zend_Uri для нового URI или на основе уже существующего, в результате манипуляций с ним этот URI может стать невалидным. Проверка объекта <code>Zend_Uri_*</code><!--Validating a <code>Zend_Uri_*</code> Object--> valid(); // TRUE ?>]]> Метод valid() дает возможность проверить, является ли URI по-прежнему валидным.