Вопрос-ответ

Популярные вопросы с ответами для владельцев и разработчиков сайтов

На чем написан Laravel?

Laravel написан на языке программирования PHP. Это полностью серверный PHP-фреймворк, который использует архитектурный паттерн MVC (Model-View-Controller). Код ядра фреймворка, все его компоненты (маршрутизация, ORM Eloquent, шаблонизатор Blade, очереди, аутентификация) и прикладной код разработчика также пишутся на PHP. При этом Laravel активно использует современные возможности PHP: пространства имён, трейты, анонимные функции, рефлексию и атрибуты (аннотации).

PHP как основа: почему именно этот язык

Laravel — это детище PHP-разработчика Тейлора Отвелла (Taylor Otwell). Он создал фреймворк, потому что был недоволен существующими решениями (в частности, CodeIgniter) и хотел предоставить PHP-сообществу элегантный, выразительный и современный инструментарий. Таким образом, выбор PHP для Laravel — это фундаментальное решение: фреймворк написан на PHP, для PHP-разработчиков и под задачи, которые традиционно решаются на PHP (веб-приложения, API, CMS, интернет-магазины).

Если сравнивать с CMS, например, Joomla — она также написана на PHP, но представляет собой готовую систему управления контентом с жёсткой структурой, а Laravel — это фреймворк, то есть каркас, на котором разработчик строит архитектуру под свои задачи.

Из каких компонентов состоит Laravel (технический стек)

Хотя ядро написано на PHP, Laravel использует множество дополнительных технологий и инструментов, которые формируют его экосистему.

Symfony Components — невидимый фундамент

Значительная часть низкоуровневых возможностей Laravel построена на компонентах другого PHP-фреймворка — Symfony. Laravel использует такие Symfony-компоненты, как:

  • HttpFoundation — работа с запросами и ответами (Request/Response).
  • Routing — базовый механизм маршрутизации.
  • Console — создание консольных команд (Artisan).
  • Process — запуск внешних процессов.
  • Finder — поиск файлов в файловой системе.

Это не делает Laravel «надстройкой» над Symfony, но показывает, что авторы Laravel не изобретают велосипед, а используют проверенные библиотеки, переопределяя их поведение под свой API. Благодаря этому Laravel наследует стабильность и безопасность Symfony-компонентов.

ORM Eloquent: PHP + SQL-генерация

Eloquent — это ORM (Object-Relational Mapping) Laravel. Он написан на PHP, но генерирует SQL-запросы к базам данных (MySQL, PostgreSQL, SQLite, SQL Server). При работе с Eloquent разработчик пишет PHP-код, который за кулисами превращается в оптимизированные SQL-запросы.

// PHP-код в Laravel
$users = User::where('active', 1)->orderBy('name')->get();

// Сгенерированный SQL
SELECT * FROM users WHERE active = 1 ORDER BY name ASC;

Шаблонизатор Blade: PHP под капотом

Blade — это движок шаблонов Laravel. Файлы с расширением .blade.php содержат смесь HTML и директив Blade (@if, @foreach, @section). При компиляции они преобразуются в обычный PHP-код и кешируются до следующего изменения. Таким образом, в конечном итоге любой Blade-шаблон становится PHP-скриптом.

Вспомогательные утилиты (Helper-функции)

Laravel включает множество глобальных PHP-функций для упрощения повседневных задач: dd() (dump and die), collect() (работа с коллекциями), env() (чтение переменных окружения), route() (генерация URL по имени маршрута). Все они написаны на PHP.

0670

Технологии, которые управляют Laravel «извне»

Помимо PHP, Laravel взаимодействует и зависит от других систем, которые не являются частью его кода, но необходимы для работы.

Компонент / технологияРоль в LaravelНа чем написан
Composer Менеджер зависимостей PHP (установка Laravel и пакетов) PHP
PHPUnit Тестирование приложений PHP
Redis / Memcached Кеширование, драйвер очередей, сессии C / C++ (клиенты для PHP)
MySQL / PostgreSQL База данных для Eloquent C / C++

Версии PHP, которые использует Laravel

Laravel всегда поддерживает актуальные версии PHP и требует от разработчика использования современного синтаксиса. Это подталкивает PHP-сообщество к обновлениям.

  • Laravel 10 требовал PHP 8.1.
  • Laravel 11 требует PHP 8.2 или 8.3.
  • Laravel 12 (актуальная версия) требует PHP 8.2+.

Благодаря этому в коде Laravel активно используются типизированные свойства, конструкторы с продвижением (promoted properties), перечисления (enums), атрибуты и match-выражения — все современные фичи PHP.

Можно ли использовать Laravel без знания PHP?

Нет. Поскольку Laravel написан на PHP и требует написания PHP-кода для создания маршрутов, контроллеров, миграций, моделей и логики приложения, знание PHP является обязательным. Это отличает Laravel от конструкторов сайтов (например, SitePro.by), где можно собрать сайт визуально без программирования. Laravel — инструмент для профессиональных PHP-разработчиков.

Как устроен типовой проект на Laravel с точки зрения кода

Чтобы окончательно закрепить понимание, на чём написан Laravel, посмотрим структуру минимального проекта:

  • app/Http/Controllers — PHP-классы контроллеров.
  • routes/web.php — PHP-файл, где определяются маршруты.
  • database/migrations — PHP-классы миграций (создание таблиц БД).
  • app/Models — PHP-классы Eloquent-моделей.
  • resources/views — Blade-шаблоны (.blade.php).
  • config/ — PHP-массивы конфигурации.

Все эти файлы — чистый PHP (и немного HTML внутри Blade). Серверный интерпретатор PHP (на хостинге или локальной машине) выполняет эти файлы и генерирует HTML, который отправляется браузеру. Именно поэтому для работы Laravel необходим хостинг с поддержкой PHP (почти любой современный хостинг, включая варианты с панелью cPanel).

Итог: Laravel — это PHP от и до

Таким образом, ответ максимально полный и точный: Laravel написан на PHP. Его ядро, все компоненты, а также код приложений на Laravel — это PHP. Фреймворк использует отдельные компоненты Symfony (тоже PHP) и опирается на экосистему PHP-инструментов (Composer, PHPUnit). Любое взаимодействие с базами данных, кешем или очередями происходит через PHP-драйверы и библиотеки.

Если вы знаете PHP — освоить Laravel будет логичным и мощным шагом в развитии. Если вы не знаете PHP — начать стоит именно с языка, а уже потом переходить к фреймворку.