Zend Framework: Могу ли я просто получить параметры? - PullRequest
10 голосов
/ 30 сентября 2010

В Zend Framework большую часть времени, чтобы получить параметр, я буду использовать

// from controller
$this->getRequest()->getParam('key');

, но как я могу получить только параметры GET, используя способ Zend?Или я просто использую $_GET?Есть ли разница между

$this->getRequest()->getParam('key');

против

$_GET['key'];

Ответы [ 4 ]

33 голосов
/ 30 сентября 2010

Использование getQuery():

$this->_request->getQuery('key');

Доступны и другие методы:

  • getParam ()
  • getQuery ()
  • getPost ()
  • getCookie ()
  • getServer ()
  • getEnv ()

getParam() сначала проверяет пользовательские параметры, затем $ _GET изатем $ _POST, возвращая первое найденное совпадение или ноль.

Старайтесь избегать прямого доступа к суперглобалам.

12 голосов
/ 30 сентября 2010

Основное отличие состоит в том, что

$_GET['key'];

- это зависимость от окружающей среды. Это требует, чтобы суперглобальный был доступен и содержал ключ этого имени. Это также простой доступ к массиву, в то время как

$this->getRequest()->getParam('key');

- это вызов метода API. Доступ к запросу является абстрактным. Нет зависимости от реальной среды. Объект запроса может быть ложным. Метод getParam всегда будет возвращать значение независимо от того, является ли оно $_GET или $_POST.

Лучше поместить абстракцию поверх запроса, поскольку она обеспечивает большую развязку, меньше зависимостей и, следовательно, облегчает тестирование и поддержку приложения.

1 голос
/ 09 января 2017

Это работает для ZF2

$this->params()->fromQuery('key', 1); // second argument is optional default paramter
0 голосов
/ 08 июня 2016

Изучив документацию по привязке данных Zend 2 , я обнаружил, что лучше всего получить доступ к параметрам маршрута через автоматически доступный плагин Params .Используя этот плагин, вы можете получить параметр, как показано ниже, из контроллера.

$this->params('key');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...