Использует
MVC.
Вид
- это шаблон. Он не содержит логики.
Контроллер - блок, который получает
данные от пользователя. Обрабатывает,
нормализует, проверят правильность
ввода. И передает данные в модель.
Контроллер
не должен содержать никакой информации
о внешнем виде приложения.
Модель
- основа логики приложения. Отвечает за
расчеты, выборку информации из БД,
изменение информации в БД и т. д.
Моделью можно представить библиотеку
функций.
Схема
работы
Все
запросы пользователей перенаправляются
сервером в глобальную точку входа по
адресу public\index.php
Файл
index.php загружает созданный Композером
автозагрузчик классов при помощи файла
bootstrap\autoload.php
В
index.php создается объект глобального
класса фреймворка Ларавель с использованием
файла bootsrap\app.php
Запрос
поступает в ядро обработки http-запросов
- класс с именем Kernel. app\Http\Kernel.php
Класс
Kernel наследует свой функционал от
родительского класса Kernel. Чтобы не было
конфликтов для родительского ядра
назначен псевдоним HttpKernal.
Путь
к нему:
\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php
В
этом классе определяется массив
bootstrapers, где указан список классов,
которые должны запускаться перед
выполнением запроса.
\Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class,
- класс определения имени среды разработки
- класс определения имени среды разработки
\Illuminate\Foundation\Bootstrap\LoadConfiguration::class,
- класс загрузки конфигурации
- класс загрузки конфигурации
\Illuminate\Foundation\Bootstrap\HandleExceptions::class,
- класс обработки исключений
\Illuminate\Foundation\Bootstrap\RegisterFacades::class,
- класс регистрации фасадов
- класс регистрации фасадов
\Illuminate\Foundation\Bootstrap\RegisterProviders::class,
- класс регистрации
- класс регистрации
\Illuminate\Foundation\Bootstrap\BootProviders::class,
- класс загрузки сервис-провайдеров
Доступные
сервис-провайдеры определяются в
config\app.php
Массив
providers.
Также
в app\Http\Kernel.php определен список Middleware.
Это
список посредников, т.е промежуточных
фильтров, которые должны обработать
входящие запросы.
Если
каждый из этих фильтров разрешает
выолнение запроса, то запрос будет
передан дальше.
Ядро
app\Http\Kernel.php принимает в качестве входного
параметра запрос и отдает ответ. Это
видно в точке входа index.php
$response->send();
Как
только все сервис-провайдеры
зарегестрированы и приложение загружено,
запрос пользователя поступает в Роутер.
Фреймворк
решает какой маршрут обработает тот
или иной запрос.
В
качестве обработчика маршрута может
быть назначен определенный контроллер
или функция.
Если
обработчик - контроллер, то запрос
передается контроллеру.
Он
выполняет необходимые преобразования
данных и обращается к модели с запросом
данных, которые должны быть отображены
на экране.
Если
нужны данные из БД, то модель связывается
с БД и выбирает данные, приводит их к
определенному виду и возвращает
контроллеру.
Контроллер
передает их виду, который отображает
данные на экране.
Если
обработчиком выступает функция, то и
данные из функции роутера передаются
в вид.
Идем в
/routes/web.php.
Это
маршрут главной страницы:
Route::get('/',
function () {
return view('welcome');
});
return view('welcome');
});
/ -
шаблон
welcome
— название вида
\resources\views
здесь находятся виды.
Пример
Создадим
маршрут для отображения данной страницы:
http://tlaravel.loc/page
В /routes/web.php
пишем
Route::get('/page',
function () {
return view('page');
});
return view('page');
});
В
\resources\views форируем новый вид: page.blade.php
Там
пишем Page
Комментариев нет:
Отправить комментарий