Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

$this->request->get['_route_'] чем отличается от $this->request->get['route'] ?


Recommended Posts

Здравствуйте! Я переписываю логику для формирования ЧПУ ссылок. Не могу разобраться в чужом коде, может кто знает, чем отличается

 $this->request->get['route']

от

$this->request->get['_route_']

 

Надіслати
Поділитися на інших сайтах


6 минут назад, denrr сказал:

чем отличается

просто разные индексы

Надіслати
Поділитися на інших сайтах

57 минут назад, denrr сказал:

Я переписываю логику для формирования ЧПУ ссылок.

 

57 минут назад, denrr сказал:

Не могу разобраться в чужом коде,

Зачем взялись? Если не понимаете?

  • +1 1
Надіслати
Поділитися на інших сайтах

В 06.01.2019 в 20:39, chukcha сказал:

Зачем взялись? Если не понимаете? 

Может что бы научиться/разобраться? Или это противозаконно? Или что-то можно делать только с письменным разрешением от... кого?

Надіслати
Поділитися на інших сайтах


9 минут назад, destreser сказал:

Может что бы научиться/разобраться? Или это противозаконно? Или что-то можно делать только с письменным разрешением от... кого?

А что там разбираться то...

 

Посмотрите в htaccess, что происходит здесь?

 

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

По моему ясно же, что весь "хвост" запроса уходит в обработчик php с ключом _route_.

Т.е. это внешний набор данных, который пришел "из мира" в котором содержится полная информация о запрашиваемых данных, который потом разбирается на части сео-классом:

 

            
 

        // Decode URL
        if (isset($this->request->get['_route_'])) {
            $parts = explode('/', $this->request->get['_route_']);

 

а "route"  - это системный указатель, который определяет какой контроллер системы должен обрабатывать ваш запрос.

 

// Router
if (isset($request->get['route'])) {
    $action = new Action($request->get['route']);
} else {
    $action = new Action('common/home');
}

 

В случае использования ЧПУ, у нас в строке запроса нет явно указанных параметров, какой контоллер должен обрабатывать ту или иную ссылку,  а есть только что-то вида

site.com/product_url.

Для того чтобы движок понял, чему этот product_url соответствует ему надо из _route_ разобрать данные, постучаться в базу получить соответствия, типа product_id = 234234, определить по типу сущности, что это товар, выставить соответствующий системный route = product/poduct и отработать при помощи нужного контроллера ваши данные.

 

Ничего военного и тайного в этом нет. Но все таки я поддержу чукчу, если данный механизм непонятен "как есть", а он достаточно логичен и интуитивен, лучше не лезть, потому что можно нахомутать.

 

 

 

 

  • +1 2
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.