Порівняно з приблизно 10 роками тому я зазначив перехід до фреймворків, використовуючи стиль маршрутизації, який відокремлює шлях URL до файлової системи. Зазвичай це здійснюється за допомогою схеми переднього контролера.
А саме, коли раніше шлях шляху до URL був відображений безпосередньо до файлової системи і, отже, відображав точні файли та папки на диску, то в даний час фактичні шляхи URL-адреси запрограмовані так, щоб вони були спрямовані на конкретні класи через конфігурацію, і, як такий, більше не відображають файл системна папка та структура файлів.
Питання
Як і чому це стало звичним явищем? Як і чому було вирішено, що "краще" до того моменту, коли колись звичайний підхід прямого до файлу фактично відмовився?
Інші відповіді
Тут є аналогічна відповідь, яка трохи вникає в поняття маршруту та деякі переваги та недоліки: чому в рамках PHP-фреймів використовується концепція "маршрут"?
Але це не стосується історичних аспектів змін, або того, як або чому ця зміна поступово сталася, до тих пір, де будь-які нові проекти в даний час в значній мірі використовують цей новий шаблон стилю маршрутизації, і прямий файл до застарілого або залишеного.
Крім того, більшість згаданих переваг та недоліків не є достатньо вагомими для того, щоб гарантувати такі глобальні зміни. Можливо, єдина користь, яку я можу побачити, як змінити цю зміну, - це приховати файлову / папкову систему від кінцевого користувача, а також її відсутність ?param=value¶m2=value
, що робить URL-адреси схожішими. Але чи були це єдиною причиною змін? І якщо так, то чому були ці причини цього?
Приклади:
Мені найбільше знайомі рамки PHP, і багато популярних сучасних фреймворків використовують цей розв'язаний підхід до маршрутизації. Щоб він працював, ви налаштували перезапис URL-адрес на Apache або подібний веб-сервер, де функціональність веб-додатків, як правило, більше не запускається через прямий шлях до файлу URL.
Zend Expressive
https://docs.zendframework.com/zend-expressive/features/router/aura/
https://docs.zendframework.com/zend-expressive/features/router/fast-route/
https: //docs.zendframework. com / zend-expressive / функції / маршрутизатор / zf2 /Zend Framework
https://docs.zendframework.com/zend-mvc/routing/
Ларавель
https://laravel.com/docs/5.5/routing
CakePHP