Posts tagged ‘Zend_Controller_Router’

Недавно на сайте http://fbdevzone.com/ был рассмотрен удобный способ передачи URL-параметров в действия.
Обычно для этой цели используются методы $this->_getParam() и $this->getRequest()->getParam() в классах контроллера. Это довольно удобный способ, однако он не идеален — прописывать это из метода в метод не очень удобно.
Предложенный способ заключается в том, что параметры передаются в действия в виде аргументов метода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * index/info/
 * index/info/tags/one/tags/two
 * index/info/msg/msg-only
 * index/info/date/2009-10-03
 * index/info/msg/RandomOrder/date/2009-10-03
 *
 * @param array $tags
 * @param Zend_Date $date
 * @param string $msg
 */

public function infoAction(array $tags = null, Zend_Date $date = null, $msg = 'hello')
{
    Zend_Debug::dump($tags);
    if (!is_null($date)) echo $date->get(Zend_Date::DATETIME_FULL);
    else echo "no date passed\n";
    Zend_Debug::dump($msg);
    die;
}

При помощи Zend_Reflection производится парсинг phpdoc-комментариев, присваивая переменным соответствующие типы.
Подробнее читайте в блоге автора. Там же вы найдёте исходный код класса.

Сегодня вышел финальный релиз ZF1.7.
Скачать
О большей части нововведений я уже писал, освещая выход Preview Release, сейчас расскажу, что изменилось с того момента.

  • Zend_Service_Twitter – компонент для работы с Twitter’ом
  • Компонент Zend_Mail_Storage_Writable_Maildir
  • Zend_Tool переместили в инкубатор.
  • Zend_Text_Table для форматирования таблиц с использованием символов
  • Zend_ProgressBar
  • Zend_Config_Writer
  • Zend_Db_Table_Select теперь поддерживает Zend_Paginator (интересно, что бы это значило)
  • Глобальные параметры в Zend_Controller_Router
  • Множество нововведений в интернационализации, в том числе упрощение API Zend_Translate
  • Серьёзные нововведения в передаче файлов, в том числе несколько полезных валидаторов

Разумеется, на этом список не заканчивается, но основные нововведения я перечислил.
В последнее время ZF обновляется очень быстро. Будем надеяться, что на качестве это не скажется.