HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Как и любой серверный веб-фреймворк, Laravel построен вокруг HTTP. Он принимает запросы, на основе которых формирует и отдает HTTP-ответы. Laravel берет на себя всю грязную работу: разбор запроса, выбор правильного обработчика, отправку ответа клиенту. Программисту остается выполнить только самый необходимый минимум для добавления новых страниц на сайте.</p>
1 <p>Как и любой серверный веб-фреймворк, Laravel построен вокруг HTTP. Он принимает запросы, на основе которых формирует и отдает HTTP-ответы. Laravel берет на себя всю грязную работу: разбор запроса, выбор правильного обработчика, отправку ответа клиенту. Программисту остается выполнить только самый необходимый минимум для добавления новых страниц на сайте.</p>
2 <p>В этот минимум входят три вещи:</p>
2 <p>В этот минимум входят три вещи:</p>
3 <ul><li><strong>Маршрут</strong>. Определяет адрес конкретной страницы или набора страниц на сайте. Маршрут связывает эти адреса с конкретным обработчиком, который будет вызван при запросе этих страниц.</li>
3 <ul><li><strong>Маршрут</strong>. Определяет адрес конкретной страницы или набора страниц на сайте. Маршрут связывает эти адреса с конкретным обработчиком, который будет вызван при запросе этих страниц.</li>
4 <li><strong>Контроллер</strong>. Слой кода, в котором расположены обработчики страниц сайта. Они анализируют запрос (если нужно) и формируют ответ, который фреймворк отправляет пользователю.</li>
4 <li><strong>Контроллер</strong>. Слой кода, в котором расположены обработчики страниц сайта. Они анализируют запрос (если нужно) и формируют ответ, который фреймворк отправляет пользователю.</li>
5 <li><strong>Шаблон</strong>. Специальный файл, который используется для формирования HTTP-ответа.</li>
5 <li><strong>Шаблон</strong>. Специальный файл, который используется для формирования HTTP-ответа.</li>
6 </ul><p>Маршруты любого проекта на Laravel хранятся в директории<em>routes</em>. В зависимости от типа маршрута, они могут находиться в разных файлах. Сейчас нас интересует только<em>web.php</em>, этот файл предназначен для описания маршрутов обычных страниц сайта.</p>
6 </ul><p>Маршруты любого проекта на Laravel хранятся в директории<em>routes</em>. В зависимости от типа маршрута, они могут находиться в разных файлах. Сейчас нас интересует только<em>web.php</em>, этот файл предназначен для описания маршрутов обычных страниц сайта.</p>
7 <p>Изначально этот файл содержит только один маршрут, соответствующий главной странице /.</p>
7 <p>Изначально этот файл содержит только один маршрут, соответствующий главной странице /.</p>
8 <p>Функция Route::get($pattern, $action) задает маршрут. Первым параметром она принимает адрес запрашиваемой страницы (или паттерн, описывающий группу страниц). В коде выше это адрес главной страницы сайта. Вторым параметром передается обработчик (относится к слою контроллер). Обработчики запросов в Laravel называют экшенами (action, хотя по-русски это "действие", но так не говорят).</p>
8 <p>Функция Route::get($pattern, $action) задает маршрут. Первым параметром она принимает адрес запрашиваемой страницы (или паттерн, описывающий группу страниц). В коде выше это адрес главной страницы сайта. Вторым параметром передается обработчик (относится к слою контроллер). Обработчики запросов в Laravel называют экшенами (action, хотя по-русски это "действие", но так не говорят).</p>
9 <p>Кроме метода<em>get</em>, в маршрутизаторе определены методы для всех глаголов HTTP. В зависимости от глагола HTTP одни и те же адреса могут вести на разные обработчики. Выбор правильного глагола для маршрута определяется его семантикой. Подробнее об этом дальше по курсу.</p>
9 <p>Кроме метода<em>get</em>, в маршрутизаторе определены методы для всех глаголов HTTP. В зависимости от глагола HTTP одни и те же адреса могут вести на разные обработчики. Выбор правильного глагола для маршрута определяется его семантикой. Подробнее об этом дальше по курсу.</p>
10 <p>В самом простом случае экшену достаточно вернуть строку, которая станет телом HTTP-ответа. Например, если переписать маршрут так:</p>
10 <p>В самом простом случае экшену достаточно вернуть строку, которая станет телом HTTP-ответа. Например, если переписать маршрут так:</p>
11 <p>И обновить страницу, то на экране отобразится фраза<em>hello, world!</em>.</p>
11 <p>И обновить страницу, то на экране отобразится фраза<em>hello, world!</em>.</p>
12 <p>Однако, в исходном варианте возвращается результат вызова view('welcome'). view($templateName) - глобальная функция, которая принимает на вход имя шаблона и возвращает его содержимое в виде строки. Затем это содержимое возвращается из экшена. Такой подход позволяет отделить обработку запроса от формирования ответа (в данном случае HTML). Это часть архитектурного подхода MVC.</p>
12 <p>Однако, в исходном варианте возвращается результат вызова view('welcome'). view($templateName) - глобальная функция, которая принимает на вход имя шаблона и возвращает его содержимое в виде строки. Затем это содержимое возвращается из экшена. Такой подход позволяет отделить обработку запроса от формирования ответа (в данном случае HTML). Это часть архитектурного подхода MVC.</p>
13 <p>Сам шаблон доступен по пути<em>resources/views/welcome.blade.php</em>. Функция view автоматически подставляет нужные директории, поэтому достаточно указывать имя шаблона. Попробуйте открыть этот шаблон и посмотреть что находится внутри него. Это тот самый HTML, который отображается при заходе на главную страницу.</p>
13 <p>Сам шаблон доступен по пути<em>resources/views/welcome.blade.php</em>. Функция view автоматически подставляет нужные директории, поэтому достаточно указывать имя шаблона. Попробуйте открыть этот шаблон и посмотреть что находится внутри него. Это тот самый HTML, который отображается при заходе на главную страницу.</p>
14 <p>Создадим новую страницу<em>/about</em>. Для этого добавим маршрут, экшен и шаблон:</p>
14 <p>Создадим новую страницу<em>/about</em>. Для этого добавим маршрут, экшен и шаблон:</p>
15 <p>Добавьте в файл<em>routes/web.php</em>новый маршрут и экшен:</p>
15 <p>Добавьте в файл<em>routes/web.php</em>новый маршрут и экшен:</p>
16 <p>Создайте шаблон<em>resources/views/about.blade.php</em>и добавьте туда следующий HTML:</p>
16 <p>Создайте шаблон<em>resources/views/about.blade.php</em>и добавьте туда следующий HTML:</p>
17 <p>Теперь если открыть страницу<em>/about</em>, то отобразится вновь добавленная страница.</p>
17 <p>Теперь если открыть страницу<em>/about</em>, то отобразится вновь добавленная страница.</p>