Отправка сообщения






Добро пожаловать!

Концепция «единой точки входа»

Практически все популярные фреймворки используют концепцию «единой точки входа». Данный механизм имеет ряд преимуществ в разработке, и сопровождении проектов. Работает данная концепция таким образом: все запросы отправляемые пользователями перенаправляются в один файл, который в свою очередь занимается обработкой этих запросов, и возвращает результат обработки запроса. При этом достигается минимум избыточности кода, нет необходимости плодить кучу файлов для обработки запросов, удобная манипуляция динамическим контентом, гибкое управление URL-ами на сайте, и многое другое. Немного перечислив преимущества данной концепции можно рассказать о том, как это делается на практике.




Чтобы данный механизм начал работать, необходимо указать веб-серверу чтобы все запросы к какой либо директории сайта (как правило, к корневой) перенаправлялись в единую точку – скрипт, который будет выполнять дальнейшую обработку запроса. Приведенная здесь конфигурация актуальна для сервера Apache. В конфигурации веб-сервера Apache предусмотрена директива RewriteRule, которая относиться к модулю mod_rewrite.

Модуль mod_rewrite предоставляет возможность организовать различные механизмы перенаправления, выполняя преобразование URL на лету опираясь на определенные правила (с возможностью применения регулярных выражений).

Традиционно перенаправление настраивается в файле .htaccess, пример перенаправления:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url_param=$1 [L]
</IfModule>

Данная конфигурация укажет веб-серверу, чтобы тот перенаправлял все запросы на файл index.php, кроме того строка запроса будет находиться в GET переменной url_param, которую можно «распарить», и решать что делать дальше.

Рассмотрим назначение строк, указанных выше.

Строка включает использование ModRewrite (Модуль перенаправления):

RewriteEngine On

Строка указывает корневую директорию, начиная с которой вступает в действие перенаправление:

RewriteBase /

Здесь указанны условия перенаправления:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

При любом запросе (строчка ^(.*)$) идет перенаправление на указанный файл. Вся строка, идущая после домена, записывается в переменную $_GET[‘url_param’]:

RewriteRule ^(.*)$ index.php?url_param=$1 [L]

На самом деле данная концепция поможет вам в решении кучи задач, начиная от построения модели MVC, заканчивая управлением правами доступа к различным частям сайта. Рассмотренный здесь пример перенаправления прост, на практике могут использоваться перенаправления по сложнее, включая множество условий. В связи с этим для более комфортного использования рекомендуется почитать документацию по модулю mod_rewrite.

Добавил: htmaker, 02.01.2014 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Комментарии

  • Загрузка...

Наверх