Laravel лучше изучать не с архитектурных схем, а с первого маршрута. В этом уроке мы создадим route, вынесем логику в controller и вернем простой JSON-ответ. Так вы увидите главную цепочку Laravel: запрос приходит на route, route вызывает controller, controller возвращает ответ
Это не курс по всему фреймворку. Это аккуратный вход, чтобы структура проекта перестала выглядеть как чужой город ночью
Что получится в конце
Запрос:
curl http://127.0.0.1:8000/tasks
вернет:
[
{"id":1,"title":"Разобрать route в Laravel","done":true}
]
А код будет лежать в двух понятных местах:
routes/web.php
app/Http/Controllers/TaskController.php
Что нужно заранее
Нужны PHP, Composer и установленный Laravel-проект. Если Composer еще не настроен, сначала откройте Composer в PHP: установка пакетов без ручного копирования
Способ установки Laravel меняется от версии к версии, поэтому ориентируйтесь на официальную документацию Laravel. Важно не копировать старую инструкцию из случайной статьи: структура новых проектов может отличаться
Создаем route
В файле routes/web.php добавьте:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return 'Привет из Laravel';
});
Запустите локальный сервер:
php artisan serve
Откройте:
http://127.0.0.1:8000/hello
Если видите текст, route работает
Что такое route
Route связывает URL и действие. В примере:
Route::get('/hello', function () {
return 'Привет из Laravel';
});
Laravel говорит: если пришел GET-запрос на /hello, выполни функцию и верни результат
Для маленькой проверки closure внутри route нормален. Но если логика растет, лучше вынести ее в controller
Создаем controller
Выполните:
php artisan make:controller TaskController
Laravel создаст файл:
app/Http/Controllers/TaskController.php
Откройте его и добавьте метод:
<?php
namespace App\Http\Controllers;
class TaskController extends Controller
{
public function index()
{
return [
[
'id' => 1,
'title' => 'Разобрать route в Laravel',
'done' => true,
],
];
}
}
Laravel умеет превращать массив в JSON-ответ
Подключаем controller к route
<?php
use App\Http\Controllers\TaskController;
use Illuminate\Support\Facades\Route;
Route::get('/tasks', [TaskController::class, 'index']);
Проверьте:
curl http://127.0.0.1:8000/tasks
Теперь route не содержит логику задач. Он только направляет запрос в controller
Где лежат главные файлы
Для первого урока достаточно запомнить:
routes/web.php
маршруты обычных web-страниц
app/Http/Controllers
controllers, куда выносится логика обработки запросов
resources/views
Blade-шаблоны, если вы возвращаете HTML-страницы
.env
настройки окружения: база, ключи, режим приложения
JSON или view
Для API удобно вернуть массив или response()->json(...). Для обычной страницы возвращают view:
return view('tasks.index', [
'tasks' => $tasks,
]);
В первом уроке JSON проще: не нужно сразу изучать Blade. Но для сайта Laravel-шаблоны понадобятся быстро
Частые ошибки
Class TaskController not found. Проверьте use App\Http\Controllers\TaskController; в routes/web.php и namespace внутри controller
404 Not Found. Route не добавлен, путь написан иначе или вы открыли не тот URL
php artisan не найден. Вы не в папке Laravel-проекта
Белая страница или 500. Смотрите Laravel error page локально и файл логов storage/logs/laravel.log
Что может быть еще интересно по этой теме
Laravel нужен после обычного PHP? Желательно сначала понимать формы, массивы, Composer и базовую обработку ошибок. Тогда Laravel выглядит как система, а не магия
Route closure это плохой стиль? Для маленькой проверки нормально. Для реальной логики лучше controller
Где делать базу данных? После первого route переходите к миграциям, моделям Eloquent и .env, но не смешивайте это с самым первым endpoint
Laravel подходит для новичка? Да, если идти по шагам. Сразу пытаться понять весь фреймворк тяжело
Что открыть дальше
- Composer в PHP: установка пакетов без ручного копирования — Laravel зависит от Composer.
- PHP и MySQL через PDO: первая база без SQL-инъекций — перед Eloquent полезно понимать базовую работу с БД.
- Ошибки PHP: белый экран, error log и display_errors — диагностика пригодится и в Laravel.
- PHP для WordPress: первый маленький shortcode — другой популярный путь PHP-разработки.



