We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

$_GET

Снова не пойму, баг или фича... Почему, после обработки Request, параметр _url остается в $_GET? Ведь это явно временный параметр только для Request и нигде больше использоваться не должен. Или я ошибаюсь? Как проверить, что кроме данного параметра в $_GET больше ничего нет? В kohana подобный параметр удаляется после обработки и можно использовать if (!empty($_GET))...



8.1k

Наверное, потому что это не Kohana и, потому что с ресурсом $_GET уже давно не принято работать напрямую. Используйте в контроллере

$this->dispatcher->getParams();

Because Phalcon doesn't Kohana. Use

$this->dispatcher->getParams();

, please.



10.2k

if (empty($this->dispatcher->getParams())) можно использовать только с 5.5 версии, верно? Но хотя бы так, спасибо...



10.2k

Однако все-равно не понятно, для чего оставлять данный параметр в $_GET. Есть идеи?



10.2k

И разве $this->dispatcher->getParams() выдаст $_GET? Вроде как параметры роута, не? Имелось в виду $this->request->getQuery? Но, как тогда удостовериться (без использования $_GET), что в $_GET ничего кроме _url нет?



8.1k

1) Что вам мешает использовать URI запросы? 2) Т.к. _url всегда первый в $_GET, то можно

if ( !NULL == array_shift($_GET) ) {
    var_dump($_GET);
} else {
    echo '_GET is empty';
}

Или использовать аналогичный запрос Phalcon.



10.2k
  1. Ничего не мешает, но в данной ситуации $_GET удобнее и привычнее.
  2. Как вариант, но это не ответ на вопрос "почему". Пока сделал так:

if (isset($_GET['_url'])) { unset($_GET['_url']); }

Грязно, но использовать удобнее.

Phalcon старается не изменять переменных окружения, позволяя использовать отдельные компоненты в других фреймворках без страха их поломки.