место в рейтинге
  • 210825
  • 2580
  • 153
Нравится блог?
Подписывайтесь!

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

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

Zend Framework считаю одним из лучших PHP-фреймворков, с появлением второй версии и решением в ней проблем производительности, думаю что ZF станет безусловным лидером.
До этого события остаются считанные месяцы, а пока можно ознакомится с нововведениями версии 1.11.

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

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

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

 

  1. <?php
  2. class App_3cm extends Zend_Service_ShortUrl_AbstractShortener
  3. {
  4. /**
  5.   * Base URI of the service
  6.   *
  7.   * @var string
  8.   */
  9. protected $_baseUri = 'http://3cm.kz';
  10.  
  11. /**
  12.   * Эта функция сокращает URL
  13.   *
  14.   * @param string $url URL to Shorten
  15.   * @throws Zend_Service_ShortUrl_Exception When URL is not valid
  16.   * @return string New URL
  17.   */
  18. public function shorten($url)
  19. {
  20. //проверка на вшивость
  21. $this->_validateUri($url);
  22.  
  23. //ссылка на наш замечательный сервис
  24. $serviceUri = 'http://3cm.kz';
  25.  
  26. //формируем запрос
  27. $this->getHttpClient()->setUri($serviceUri);
  28. $this->getHttpClient()->request("POST");
  29. $this->getHttpClient()->setParameterPost('url', $url);
  30.  
  31. $response = $this->getHttpClient()->request();
  32.  
  33. require_once 'Zend/Dom/Query.php';
  34. $dom = new Zend_Dom_Query($response->getBody());
  35.  
  36. //ищем короткую ссылку
  37. $results = $dom->query('input#input_url');
  38. $shortenedUrl = $results->current()->getAttribute('value');
  39.  
  40. return $shortenedUrl;
  41. }
  42. /**
  43.   * Эта функция показывает оригинальный URL
  44.   *
  45.   * @param string $shortenedUrl URL to reveal target of
  46.   * @throws Zend_Service_ShortUrl_Exception When URL is not valid or is not shortened by this service
  47.   * @return string
  48.   */
  49. public function unshorten($shortenedUrl)
  50. {
  51. //проверка на вшивость
  52. $this->_validateUri($shortenedUrl);
  53. $this->_verifyBaseUri($shortenedUrl);
  54.  
  55. //ссылка на наш замечательный сервис
  56. $serviceUri = 'http://3cm.kz';
  57.  
  58. //формируем запрос
  59. $this->getHttpClient()->setUri($serviceUri);
  60. $this->getHttpClient()->request("POST");
  61. $this->getHttpClient()->setParameterPost('url', $shortenedUrl);
  62.  
  63. $response = $this->getHttpClient()->request();
  64.  
  65. require_once 'Zend/Dom/Query.php';
  66. $dom = new Zend_Dom_Query($response->getBody());
  67.  
  68. //ищем ссылку
  69. $results = $dom->query('#content a');
  70.  
  71. //получаем оригинальную ссылку
  72. $originalUrl = $results->current()->getAttribute('href');
  73.  
  74. return $originalUrl;
  75. }
  76. }
  77. ?>

 

Полная версия поста о новой версии Zend Framework 1.11 расположена тут

3 ноября 2010, 9:21
1488

Загрузка...

Комментарии

tutuev
0
0
пасиб за новость =)
здесь нет девушек (раздетых и полураздетых), креативных вещей и фоточек стыренных с интернета, фотографий наших крутых фотографов, баянистых приколов с котиками и матами, новостей с маразмом наших чиновников и видео с киви....
фууу как не интересно. ведь мы так привыкли к нашему постоянству на главной!
xlbo
0
0
Не говори, мне аж стыдно. :)
OhShi
0
0
Пост-счётчик количества программистов на юви (:
xlbo
0
0
Точнее показатель разницы между программистами и их хейтерами. :)
xlbo
0
0
Как доехал домой? Кстати, твой ход. :)
xapon
0
0
Доехал ок :)
Согласно разнице дат публикаций этого и предыдущего поста в сообществе, у меня есть по крайней мере пол года на ход. Что-нибудь придумаю :3
))интересно) спасибо

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Только на 10-й раз он смог поступить в Кембридж! Герой с Кармакшинского района

Только на 10-й раз он смог поступить в Кембридж! Герой с Кармакшинского района

Свыше 10 известных университетов приглашают его обучаться зарубежом, но выбор будет оставаться за Сакеном. Он выберет обучение The University of Edinburgh и отправляется в эту удивительную страну...
socium_kzo
30 нояб. 2016 / 11:06
  • 10729
  • 10
Взгляд со стороны: Назарбаев глазами кыргыза

Взгляд со стороны: Назарбаев глазами кыргыза

В чем уникальность этой личности? В чем его успех или провалы? Эти вопросы требуют глубокой аналитики и исследований. Я же хочу рассказать о Нурсултане Абишевиче глазами рядового кыргыза или...
maxes
1 дек. 2016 / 8:05
  • 4287
  • 14
Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Как сообщают новостные издания, в ближайшее время в Южном Казахстане 102 детям в возрасте 11-12 лет сообщат об их страшном диагнозе. Все эти дети были заражены ВИЧ, причём большинство было инфицировано по вине врачей.
openqazaqstan
2 дек. 2016 / 13:57
  • 3749
  • 4
Когда на тебя смотрят как на говно. На работе многие считали, что они выше меня уровнем

Когда на тебя смотрят как на говно. На работе многие считали, что они выше меня уровнем

Дело было летом 2012 года. Мне было почти 20 лет, жил я от сессии до сессии довольно весело. В голове машины, клубы, тёлки. Жизнь размеренная и неторопливая. Вдруг мне приходит в голову идея...
almatinec_92
28 нояб. 2016 / 16:57
Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Трамп и не подозревает, что 16 декабря 1991 Казахстан не создал, а восстановил свою национальную государственность. Иначе бы он упомянул не только 25 лет, а больше чем 550 лет казахской истории.
Stehlikova
2 дек. 2016 / 9:02
  • 3696
  • 86
О переименовании столицы: Казнет не зря взорвался едкими комментариями

О переименовании столицы: Казнет не зря взорвался едкими комментариями

Сеть облетело очень символичное видео, где г-ну Султанову в ходе пресс-конференции прямо задают этот вопрос. «Вы советовались с народом?!» – спрашивают его журналисты. На что депутат так и не смог вразумительно ответить.
openqazaqstan
28 нояб. 2016 / 14:35
  • 3486
  • 15
Мой личный опыт использования Astra Plat: мелочи в моем кармане заметно стало меньше

Мой личный опыт использования Astra Plat: мелочи в моем кармане заметно стало меньше

Давно ждал запуска электронного билетирования в общественном транспорте Астаны. В ноябре 2016 года этот день настал. Мой опыт насчитывает последние 2 недели и мне есть чем поделиться. Она не...
iamYerlan
1 дек. 2016 / 15:24
  • 2952
  • 11
Аэропорт Схипхол и Алматы. Смотришь на это и ощущение, что мы лет на тридцать отстали

Аэропорт Схипхол и Алматы. Смотришь на это и ощущение, что мы лет на тридцать отстали

Недавно пролетал через аэропорт Амстердама - Схипхол. Так как улетал из аэропорта Алматы, то не мог не начать сравнивать эти аэропорты.
Superkurt
30 нояб. 2016 / 10:09
  • 3122
  • 12
Понять и простить: почему большинство стран бывшего СССР отказалось от амнистий

Понять и простить: почему большинство стран бывшего СССР отказалось от амнистий

Президент Назарбаев предложил амнистию для совершивших преступления небольшой тяжести несовершеннолетних, пожилых, женщин и других социально уязвимых категорий осуждённых
openqazaqstan
30 нояб. 2016 / 13:45
  • 2804
  • 19