Laravel: что это простыми словами
Представьте сайт записи на занятия. Посетитель выбирает время и оставляет заявку, администратор меняет её статус. Для этого нужны формы, база данных, вход пользователей и правила бронирования.
Laravel предоставляет основу приложения, но правила отмены, оплаты и распределения мест нужно написать. PHP здесь является языком программирования, а фреймворк Laravel объединяет библиотеки и инструменты на этом языке.
Laravel распространяется по лицензии MIT. Платить за сам фреймворк не нужно; при распространении сохраняют уведомление об авторстве и текст лицензии. Разработка, хостинг и обслуживание оплачиваются отдельно.
После установки вы получаете основу проекта, а не готовый интернет-магазин. Интерфейс, каталог и обработку заказов предстоит разработать.
Для чего нужен Laravel и какие сайты на нём создают
Laravel подходит для собственных правил: цена заказа зависит от договора, а доступ к документам определяется ролью пользователя. Фреймворк позволяет программировать эти процессы без подгонки бизнеса под готовый шаблон.
Для страницы с текстом и формой заявки Laravel может оказаться избыточным. Если CMS закрывает требования, сравните стоимость настройки и дальнейших изменений.
| Задача | Что предстоит разработать | Что уточнить заранее |
|---|---|---|
| Личный кабинет | Заявки, документы, история операций | Какие данные доступны клиенту и сотруднику |
| Внутренняя CRM | Карточки обращений и переходы между статусами | Кто отвечает за каждый этап обработки |
| Интернет-магазин | Каталог, оформление заказа, обмен остатками | Какие правила нельзя реализовать готовыми средствами |
| Сервис записи | Расписание, бронирование и отмена | Как исключить повторную запись на занятое время |
| API для приложения | Приём запросов и выдача данных | Как приложение подтверждает пользователя и обрабатывает ошибки |
Laravel, CMS и чистый PHP: в чём разница
CMS обычно даёт готовые средства управления содержимым. Фреймворк предоставляет инструменты разработки, а состав административной панели определяется проектом. При этом на Laravel можно создать собственную систему управления или подключить подходящий пакет.
На чистом PHP тоже можно подключать библиотеки. Laravel уже согласует их работу и задаёт структуру приложения.
| Подход | Когда рассматривать | Что учесть |
|---|---|---|
| CMS | Нужны типовые страницы и знакомый редактор | Нестандартные процессы могут потребовать доработок |
| Laravel | Нужны собственные роли, расчёты и интеграции | Интерфейс управления и бизнес-логику предстоит собрать |
| PHP с отдельными библиотеками | Есть конкретные требования к составу приложения | Архитектуру и совместимость компонентов нужно поддерживать |
Laravel или Symfony
Symfony предлагает отдельные PHP-компоненты и фреймворк на их основе. Laravel тоже даёт готовую основу приложения и собственные соглашения разработки. Выбор зависит от опыта разработчиков, нужных пакетов и существующего кода.
Проверьте на небольшой задаче, как устроены маршруты, формы и обновления зависимостей. Утверждение «Laravel всегда проще или быстрее Symfony» без такого сравнения мало помогает.
Как работает Laravel: MVC, маршрут и контроллер
MVC означает модель, представление и контроллер. Это архитектурный подход к разделению ответственности. В нашем примере модель хранит данные бронирования, представление показывает расписание, контроллер организует обработку запроса.
Маршрутизация Laravel связывает URL и HTTP-метод с обработчиком. GET получают страницу расписания; изменение бронирования должно выполняться отдельным запросом. Сложные правила удобно выносить из контроллера в отдельные классы.
- Laravel принимает запрос и запускает глобальные промежуточные обработчики.
- Маршрутизатор находит маршрут, затем выполняются его промежуточные обработчики, например проверка входа.
- Контроллер вызывает логику приложения, которая при необходимости обращается к БД.
- Ответ проходит обратно через промежуточные обработчики и отправляется браузеру.
База данных Laravel: Eloquent и миграции
Eloquent ORM связывает таблицы базы данных с моделями PHP. Через модель можно находить, создавать, изменять и удалять записи. Laravel переводит такие операции в запросы к выбранной системе хранения.
Например, модель Booking представляет бронирование и связывает его с таблицей. Знание SQL помогает понимать связи и замечать дорогие запросы.
Миграции описывают изменения структуры БД в файлах. Добавление таблицы или столбца становится частью истории проекта. Так проще применять одинаковые изменения на компьютере разработчика, тестовом стенде и сервере.
Установщик Laravel по умолчанию подготавливает SQLite. Для проекта можно настроить MySQL или PostgreSQL. Выбор зависит от существующей инфраструктуры, требований к данным и опыта тех, кто будет поддерживать сайт.
Заранее согласуйте ограничения БД: бронирование должно ссылаться на существующее занятие. Удаление занятия не должно уничтожать оплаченные записи.
Как начать работу с моделью
Команда php artisan make:model Booking --migration создаёт модель и файл миграции. Затем вы описываете структуру таблицы и применяете изменения командой php artisan migrate.
Не запускайте изменения БД вслепую на рабочем сайте. Сначала проверьте их на копии данных и подготовьте восстановление. Особенно внимательно проверяйте удаление столбцов и преобразование форматов.
Шаблоны Blade и отображение страниц
Blade отвечает за представление: собирает HTML-страницу из шаблона и переданных данных. В нём есть условия, циклы и компоненты. Например, общий блок навигации можно использовать на страницах расписания, профиля и истории заявок.
Стандартный вывод через двойные фигурные скобки экранирует специальные символы. Это помогает защищать страницу от внедрения посторонней разметки и сценариев. Вывод пользовательского содержимого без экранирования требует отдельной проверки.
Оставляйте в шаблоне логику показа. Расчёт цены и проверка доступа должны выполняться до формирования страницы.
Установка Laravel: с чего начать новичку
Для установки Laravel нужны PHP и Composer, менеджер зависимостей PHP. Node.js с npm потребуется для сборки интерфейса и приведённого запуска. Для отдельного сервера API без сборки интерфейса Node.js не обязателен.
На сентябрь 2026 года Laravel 13 требует PHP не ниже 8.3. Проверьте окружение до создания проекта. Если установщик сообщает об отсутствующем расширении, исправьте окружение, затем повторите команду.
Выполните команды по порядку в терминале. Название example-app можно заменить именем своего проекта. При создании приложения следуйте вопросам установщика и выберите подходящие параметры.
Как запустить приложение и проверить результат
После запуска откройте http://localhost:8000 в браузере. Это адрес локального сервера разработки. Он нужен для работы на вашем компьютере, а не для публикации сайта.
Если страница не открывается, проверьте сообщение в терминале и адрес запущенного сервера. Если команда laravel не найдена, добавьте каталог исполняемых файлов Composer в PATH.
Учитесь на отдельном проекте без клиентских данных. После стартовой страницы добавьте маршрут и шаблон, затем форму с сохранением записи.
composer global require laravel/installer
laravel new example-app
cd example-app
npm install
npm run build
composer run dev
Первый маршрут Laravel: передаём запрос контроллеру
Соберём страницу расписания без БД. Из каталога проекта выполните php artisan make:controller ScheduleController. Генерация создаст файл app/Http/Controllers/ScheduleController.php.
Добавьте маршрут в существующий routes/web.php после открывающего тега PHP. Если импорт Route уже есть, не повторяйте его. Далее заполните контроллер и шаблон из следующих разделов.
Зачем нужна командная строка
Artisan позволяет генерировать классы и выполнять служебные операции Laravel. Команда php artisan list показывает доступные действия, а php artisan route:list выводит маршруты. Генератор создаёт заготовки, правила приложения вы пишете сами.
use App\Http\Controllers\ScheduleController;
use Illuminate\Support\Facades\Route;
Route::get('/schedule', [ScheduleController::class, 'index']);
Контроллер расписания Laravel
Замените содержимое созданного ScheduleController.php этим кодом. Метод index передаёт название занятия в представление schedule. Для работы с БД здесь можно будет вызвать модель.
<?php
namespace App\Http\Controllers;
class ScheduleController extends Controller
{
public function index()
{
return view('schedule', ['lesson' => 'Йога']);
}
}
Шаблон расписания Laravel и результат
Создайте файл resources/views/schedule.blade.php с текстом ниже. Blade подставит переданное контроллером значение переменной lesson.
При работающем composer run dev откройте http://localhost:8000/schedule. Вы увидите «Занятие: Йога». Поменяйте название в контроллере и обновите страницу. Если Laravel сообщает, что представление не найдено, проверьте путь и имя файла.
Занятие: {{ $lesson }}
Безопасность Laravel: что нужно настроить
Laravel содержит средства аутентификации, авторизации и защиты форм. Аутентификация определяет, кто вошёл в систему. Авторизация проверяет, разрешено ли этому человеку конкретное действие. Для сайта с личным кабинетом нужны обе проверки.
Вход не даёт доступа ко всем документам. Проверяйте права на каждую запись на сервере: скрытую кнопку можно обойти прямым запросом.
Защита от CSRF помогает предотвращать нежелательные действия от имени вошедшего пользователя. Для форм Blade предусмотрена директива @csrf. Не отключайте защиту ради устранения ошибки отправки: сначала проверьте форму и настройки.
Сессия хранит состояние пользователя между запросами. Готовые стартовые наборы Laravel помогают добавить регистрацию и вход, но права на документы настраивает разработчик.
Для работы с базой данных используйте параметры запросов. Конструктор запросов Laravel связывает значения через PDO, что помогает защищаться от SQL-инъекций. Но произвольный SQL со склеенными строками требует отдельной проверки. Даже корректный запрос не заменяет авторизацию: получение документа по его номеру ещё не означает, что посетителю разрешено его читать.
Перед публикацией Laravel отключите подробную отладку: значение APP_DEBUG должно быть false. Рабочий сервер должен обслуживать каталог public. Файлы конфигурации и содержимое .env не должны быть доступны посетителю.
Кэш, очереди Laravel и производительность
Кэширование сохраняет результат вычисления для повторного использования. Laravel умеет хранить кэш, например, в файлах, БД или Redis. Для каталога задайте срок хранения и обновление кэша при изменении цены. Иначе посетитель увидит устаревшие данные.
Формирование большого отчёта или обработка загруженного файла могут задерживать ответ сайта. Очередь позволяет вынести такую работу в отдельное выполнение. Пользователь получает ответ, а результат операции появляется позже.
Для фоновой обработки Laravel нужен запущенный обработчик очереди. Одного добавления задания недостаточно. Нужно также наблюдать за ошибками, контролировать повторные попытки и проверять завершение операции.
Показывайте состояние фоновой задачи: «Готовится», «Готово» или сообщение о сбое с возможностью повторного запуска.
Начинайте ускорение с измерения конкретного действия. Если долго открывается каталог, проверьте запросы к БД, объём ответа и обработку изображений. Перенос сайта на другой сервер без измерений может не решить причину.
Тестирование приложения Laravel
Laravel поддерживает тестирование с Pest и PHPUnit. В проекте предусмотрены проверки отдельных частей и сценариев приложения. Запустить набор тестов можно командой php artisan test из каталога проекта.
Для записи на занятие проверьте успешное бронирование и отказ при отсутствии доступа. Тест поможет заметить ошибку после изменения правил.
- Отправьте корректную форму и убедитесь, что запись появилась.
- Проверьте пустые поля и недопустимые значения: пользователь должен получить понятную ошибку.
- Попытайтесь открыть чужую заявку: доступ должен быть запрещён.
- Повторите отправку формы и проверьте, не появился ли лишний заказ.
- Смоделируйте недоступность внешнего сервиса и проверьте сообщение пользователю.
Версии Laravel и поддержка на сентябрь 2026 года
Сверяйте требования версии Laravel, PHP и пакетов. Исправления обычных ошибок и обновления безопасности имеют разные сроки.
По официальной таблице Laravel 13 выпущен 17 марта 2026 года. Для него указана поддержка PHP 8.3, 8.4 и 8.5. Даты ниже проверены по разделу Release Notes.
На сентябрь 2026 года Laravel 12 получает только исправления безопасности: обычные исправления завершились 13 августа 2026 года. Для неподдерживаемого выпуска подготовьте обновление на отдельном стенде и проверьте совместимость пакетов.
| Выпуск | Поддерживаемый PHP | Обновления безопасности до |
|---|---|---|
| Laravel 13 | От 8.3 до 8.5 | 17 марта 2028 года |
| Laravel 12 | От 8.2 до 8.5 | 24 февраля 2027 года |
| Laravel 11 | От 8.2 до 8.4 | 12 марта 2026 года, срок завершён |
Laravel: документация на русском и порядок изучения
Официальная документация Laravel находится на laravel.com. В ней выбирайте выпуск, установленный в вашем проекте. Читайте страницу целиком: короткий пример может зависеть от настройки, описанной выше.
Документация Laravel на русском доступна у сообщества Laravel Russian Community. Перевод удобен для первого знакомства с терминами. Команды и требования сверяйте с английским первоисточником нужного выпуска.
Изучите основы PHP, классы, SQL и HTTP. Нужно понимать аргументы функции, устройство таблицы и разницу между запросом и ответом.
Начните с установки и маршрутов. Затем изучите контроллеры, представления, модели и миграции. После сохранения первой записи переходите к проверке данных, правам доступа и тестам. Очереди подключайте, когда появится подходящая задача.
Перед подключением пакета Laravel проверьте совместимость и лицензию. Посмотрите репозиторий: поддерживается ли пакет и как исправляют ошибки.
Экосистема Laravel: окружение и инструменты
Laravel Herd предоставляет локальную среду разработки для Windows и macOS. Laravel Boost помогает ИИ-инструментам учитывать контекст приложения. Эти средства упрощают отдельные операции, но не заменяют контроль кода и тестирование.
Для входа, сессий, кэша и очередей сначала рассмотрите средства Laravel. Подключайте сторонний пакет, когда встроенных возможностей недостаточно.
Типичные ошибки при разработке на Laravel
- Начинать с установки без описания сценариев. Сначала определите роли, действия и результат каждой операции.
- Считать, что Laravel даст готовую административную панель. Заранее согласуйте экраны, фильтры и действия сотрудников.
- Складывать запросы к БД и расчёты в шаблон. Разделите получение данных, правила и отображение.
- Менять рабочую базу вручную без истории изменений. Описывайте структуру миграциями и проверяйте результат на стенде.
- Считать скрытую ссылку достаточной защитой. Проверяйте права при обращении к самому обработчику.
- Оставлять фоновую задачу без наблюдения. Предусмотрите сообщения об ошибках и понятный способ повторить операцию.
- Обновлять зависимости прямо на рабочем сайте. Сначала проверьте совместимость и сценарии в отдельном окружении.
Сколько стоит разработка и что подготовить для брифа
Для оценки опишите роли, экраны, интеграции и правила обработки данных. Приложите образцы документов. При переносе сайта уточните состав данных.
На стоимость влияют расчёты, интеграции, интерфейс и тестирование. Отдельно согласуйте резервное копирование, журнал действий и обновления.
В seosite1 цена разработки веб-приложения определяется после брифа. Минимальный бюджет проекта от 50 тыс. ₽. Сроки называем после брифа, оплата по этапам, каждый этап вперёд.
На странице услуги разработка веб-приложений описан подход к проекту. Мы делаем сайты с 2009 года и работаем удалённо по России.
Порядок работ: требования и сценарии, структура данных, интерфейс, программирование, проверка и публикация. На каждом этапе согласуйте результат: описание функций, макеты, работающие сценарии, затем проверку на сервере. Поддержку после запуска обсудите отдельно.