Система роутінга на сайті за допомогою php

Коли розробник пише web додаток без використання фреймворків, йому доводиться вирішувати ряд архітектурних завдань, щоб додаток могло добре працювати і легко супроводжуватися. Однією з таких задач є роутинг. Або система розподілу вхідних запитів по потрібним логічним ділянкам коду, контролерам іншими словами. Про те, як це все працює і буде розказано в даній статті.

Система роутінга на сайті за допомогою php

Роутінг в нашому випадку має на увазі те, що в додатку існує одна «точка входу», єдиний файл, що обробляє і розподіляє всі, хто входить на нього запити від веб сервера. Розподіл здійснюється на основі правил, які містять в собі прості рядки, так і регулярні вирази. Зазвичай, для простоти, в правилах не описують регулярні вирази, а замінюють їх на теги, які система роутінга сама перетворює в необхідні вирази. Наприклад. num перетворюється в [0-9] +.

Перед тим як почати реалізовувати цю систему необхідно визначити дизайн або то як їй буде користуватися кінцевий програміст. У нашому випадку нехай буде так:

Далі керуючись принципами об'єктно-орієнтованого програмування завдання щодо визначення відповідності та генерації необхідно покласти на різні об'єкти:
UrlMatcher і UrlGenerator.

Отже, розібравшись з дизайном системи роутінга, перейдемо до реалізації.

UrlMatcher

Детально вивчивши наведений вище клас, ви зрозумієте як влаштована система роутінга в більшості популярних врейморков на PHP. Даний приклад більш простий в порівнянні з ними, але його можна використовувати в «бойових» пріложаенія. Повну реалізацію системи роутінга ви можете подивитися в Guthub-репозиторії. А також завантажити вихідні коди домонстраціі і поексперементувати самим.

Корисні статті по даній темі:

Поділитися посиланням з друзями

Схожі статті