---
title: "Zend Framework 1.11.0 и сокращение ссылок"
description: "2 ноября, состоялся релиз Zend Framework 1.11.0. Это последняя ветка 1.хх перед выходом версии 2.0. ..."
author: "xlbo"
published: "2010-11-02T21:21:22+00:00"
modified: "2010-11-02T21:21:22+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/zend-framework-1-11-0-i-sokrashchenie-ssylok-68239"
markdown_url: "https://yvision.kz/post/zend-framework-1-11-0-i-sokrashchenie-ssylok-68239/markdown"
site_name: "Yvision.kz"
---

# Zend Framework 1.11.0 и сокращение ссылок

> 2 ноября, состоялся релиз Zend Framework 1.11.0. Это последняя ветка 1.хх перед выходом версии 2.0. ...

2 ноября, состоялся релиз Zend Framework 1.11.0. Это последняя ветка 1.хх перед выходом версии 2.0.

Zend Framework считаю одним из лучших PHP-фреймворков, с появлением второй версии и решением в ней проблем производительности, думаю что ZF станет безусловным лидером. До этого события остаются считанные месяцы, а пока можно ознакомится с [нововведениями версии](http://itkaz.ru/zend-framework-1-11-0-i-sokrashhenie-ssylok/) 1.11.

Функционал заметно расширился, но в этом посте я расскажу о добавлении поддержки сервисов сокращения ссылок. За это отвечает компонент Zend_Service_ShortUrl. На базе него реализовано сокращение через сервисы http://jdem.cz and http://tinyurl.com.

Для тех, кто хочет поддержать отечественного производителя, я быстро набросал небольшой класс, для работы с сервисом [3cm.kz](http://3cm.kz). Он состоит из двух функций shorten и unshorten, которые соответственно сокращают и показывают оригинальную ссылку.

Выкладываю исходник тут и на сервис pastebin. Исходники на pastebin: http://pastebin.com/AHPUzFjp

``` _validateUri($url); //ссылка на наш замечательный сервис $serviceUri = 'http://3cm.kz'; //формируем запрос $this->getHttpClient()->setUri($serviceUri); $this->getHttpClient()->request("POST"); $this->getHttpClient()->setParameterPost('url', $url); $response = $this->getHttpClient()->request(); require_once 'Zend/Dom/Query.php'; $dom = new Zend_Dom_Query($response->getBody()); //ищем короткую ссылку $results = $dom->query('input#input_url'); $shortenedUrl = $results->current()->getAttribute('value'); return $shortenedUrl; } /** * Эта функция показывает оригинальный URL * * @param string $shortenedUrl URL to reveal target of * @throws Zend_Service_ShortUrl_Exception When URL is not valid or is not shortened by this service * @return string */ public function unshorten($shortenedUrl) { //проверка на вшивость $this->_validateUri($shortenedUrl); $this->_verifyBaseUri($shortenedUrl); //ссылка на наш замечательный сервис $serviceUri = 'http://3cm.kz'; //формируем запрос $this->getHttpClient()->setUri($serviceUri); $this->getHttpClient()->request("POST"); $this->getHttpClient()->setParameterPost('url', $shortenedUrl); $response = $this->getHttpClient()->request(); require_once 'Zend/Dom/Query.php'; $dom = new Zend_Dom_Query($response->getBody()); //ищем ссылку $results = $dom->query('#content a'); //получаем оригинальную ссылку $originalUrl = $results->current()->getAttribute('href'); return $originalUrl; }}?> ```

Полная версия поста о новой версии [Zend Framework 1.11](http://itkaz.ru/zend-framework-1-11-0-i-sokrashhenie-ssylok/) расположена [тут](http://itkaz.ru/zend-framework-1-11-0-i-sokrashhenie-ssylok/)

---

Source: [https://yvision.kz/post/zend-framework-1-11-0-i-sokrashchenie-ssylok-68239](https://yvision.kz/post/zend-framework-1-11-0-i-sokrashchenie-ssylok-68239)