· 7 мин чтения

PHP без фреймворка или Laravel: как выбрать для проекта

Выбор между чистым PHP и Laravel зависит от размера и срока жизни проекта. Для небольшого сайта, простой формы или узкой интеграции чистый PHP с несколькими хорошо организованными файлами даёт меньше лишнего кода и проще в размещении. Для приложения с кабинетами, ролями, очередями, API и командой разработчиков Laravel экономит месяцы работы и удерживает проект в порядке. Ниже критерии, по которым я принимаю решение.

Что значит «PHP без фреймворка» на самом деле

Фраза часто понимается как набор разрозненных скриптов с запросами в базу прямо в шаблонах. Это не то, что стоит выбирать. Грамотный «чистый» PHP это тоже архитектура, просто собранная из небольших частей вручную:

  • единая точка входа (index.php) и простой маршрутизатор;
  • разделение на слои: обработка запроса, бизнес-логика, доступ к данным, шаблоны;
  • подготовленные запросы к базе через PDO;
  • автозагрузка классов через Composer и стандарт PSR-4;
  • конфигурация вне кода, секреты в переменных окружения;
  • централизованная обработка ошибок и журналирование.

Такой подход я использую для проектов, где важны контроль над каждой частью, невысокие требования к хостингу и предсказуемость. Но дисциплина здесь обязательна: фреймворк навязывает структуру, а в чистом PHP её приходится удерживать самостоятельно.

Что даёт Laravel

Laravel это набор готовых решений для типовых задач веб-приложения. Из коробки вы получаете:

  • маршрутизацию и контроллеры;
  • ORM (Eloquent) и миграции схемы базы данных;
  • аутентификацию, авторизацию, политики доступа;
  • валидацию входных данных;
  • очереди и планировщик задач;
  • систему шаблонов Blade;
  • консольные команды;
  • механизмы тестирования;
  • защиту от распространённых уязвимостей (CSRF, экранирование вывода в шаблонах, параметризованные запросы при использовании ORM).

Главная ценность в единообразии. Новый разработчик, знающий Laravel, быстро ориентируется в проекте, потому что структура ожидаемая. Для проектов, у которых будет несколько исполнителей и продолжительное развитие, это серьёзный довод. Именно по такому сценарию я рассматриваю платформы вроде медиасайтов и сервисов с кабинетами.

Критерии выбора: на что смотреть

Не существует правильного ответа вообще, есть правильный ответ для конкретной задачи. Я прохожу по таким вопросам.

  1. Масштаб функциональности. Пять страниц и форма обратной связи или десятки сущностей с правами и статусами?
  2. Срок жизни проекта. Одноразовый лендинг или система, которая будет развиваться несколько лет?
  3. Команда. Один разработчик или несколько, и кто будет поддерживать после сдачи?
  4. Нагрузка и производительность. Реально ли высокая нагрузка или это обычный сайт компании?
  5. Интеграции. Много ли внешних API, очередей, фоновых задач?
  6. Окружение. Позволяет ли хостинг запускать Composer, консольные команды, планировщик, очереди?
  7. Бюджет и сроки. Что важнее: быстрый запуск или долгая управляемость?

Если ответы склоняются к простоте, малому объёму и ограниченному хостингу, чистый PHP оправдан. Если к росту, команде и обилию функций, берите Laravel.

Сравнение по ключевым параметрам

Таблиц здесь нет, поэтому перечислю по пунктам.

Скорость старта. У Laravel много готового, первые функции собираются быстро, но есть время на изучение структуры и настройку окружения. В чистом PHP старт можно сделать быстрым только для очень простых задач, а чем больше функций, тем больше приходится писать вручную.

Контроль и размер кода. Чистый PHP не тащит лишнего, код проще профилировать и разбирать целиком. Laravel содержит много абстракций, и разработчику нужно понимать, что происходит «под капотом».

Безопасность. Фреймворк закрывает типовые ошибки по умолчанию, но не отменяет внимательности. В чистом PHP вы сами отвечаете за защиту от внедрения SQL, XSS, CSRF, безопасную загрузку файлов и сессии. Это выполнимо, но требует опыта и ревью. Если интересно, как защищать сайт на уровне заголовков, посмотрите материал про CSP, HSTS и другие заголовки безопасности.

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

Тестируемость. Во фреймворке тестирование встроено в экосистему. В чистом PHP тесты возможны, но структуру под них приходится готовить сами.

Требования к хостингу. Laravel удобнее на VPS или хостинге с доступом к консоли. Чистый PHP работает практически везде. О выборе площадки см. статью про хостинг для сайта бизнеса.

Пример: маршрут в обоих подходах

Чтобы почувствовать разницу, ниже простая страница, возвращающая данные. Это иллюстрация, а не готовый проект.

Чистый PHP с PDO:

<?php
$pdo = new PDO($dsn, $user, $pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);

$stmt = $pdo->prepare('SELECT id, title FROM articles WHERE id = :id');
$stmt->execute(['id' => (int)($_GET['id'] ?? 0)]);
$article = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$article) {
    http_response_code(404);
    exit('Не найдено');
}
echo htmlspecialchars($article['title'], ENT_QUOTES, 'UTF-8');

Laravel:

// routes/web.php
Route::get('/articles/{article}', function (Article $article) {
    return view('article', ['article' => $article]);
});

В Laravel поиск записи, ответ 404 и экранирование в шаблоне ({{ $article->title }}) решаются платформой. В чистом PHP каждый шаг виден и контролируется вами, но и ошибиться проще. На одном маршруте разница не критична, на сотне она заметна.

Когда я выбираю чистый PHP

Подход без фреймворка разумен, когда:

  • проект небольшой и предсказуемый: сайт-визитка, каталог, калькулятор, простая админка;
  • интеграция одна-две, например приём платежа или обмен с учётной системой, и важно минимум зависимостей;
  • хостинг ограничен или нужно максимальное быстродействие при минимальных ресурсах;
  • заказчику важна простота передачи и понимания кода;
  • архитектура заранее ясна и не будет заметно разрастаться.

Для моих собственных платформ с небольшим числом специфичных функций это работает. Но я всегда фиксирую структуру проекта и стандарты кода, иначе через год он превращается в кашу.

Когда лучше брать Laravel

Фреймворк стоит выбирать, когда:

  • в проекте личные кабинеты, роли, права, статусы, уведомления;
  • будут очереди и фоновые задачи (рассылки, обработка файлов, повторные вызовы внешних API);
  • планируется развитие силами нескольких разработчиков;
  • нужен API для мобильного приложения или внешних систем;
  • важны миграции базы, автоматические тесты, единый стиль;
  • проект имеет шансы вырасти, и вы не хотите переписывать его с нуля.

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

Что обсудить с заказчиком до выбора технологии

Технический выбор должен опираться на бизнес-вопросы. Кто будет развивать сайт через год и два? Есть ли у заказчика своя команда или он планирует обращаться к разным подрядчикам? Нужны ли интеграции с учётными системами и платежами? Каковы ограничения по хостингу и бюджету поддержки? Ответы определяют не только фреймворк, но и объём документации, тестов и автоматизации выкладки. Если решение принято, зафиксируйте его вместе с причинами: через год это сэкономит время и споры.

Как не пожалеть о выбранном варианте

Чем бы вы ни пользовались, соблюдайте общие правила: версионирование кода, отдельные окружения для разработки и рабочего сайта, автоматическая проверка перед выкладкой, обновление зависимостей по графику и описание архитектуры хотя бы на одну страницу. Эти привычки влияют на судьбу проекта больше, чем выбор между фреймворком и его отсутствием. Хорошо организованный чистый PHP переживёт плохо организованный Laravel, и наоборот.

Частые вопросы

Правда ли, что Laravel медленнее чистого PHP?

В узких тестах да, из-за слоя абстракций. Для обычных сайтов и бизнес-приложений разница почти никогда не определяет успех, а узкие места находятся в базе данных, запросах и кэше. Оптимизация при необходимости делается кэшированием, очередями и настройкой окружения.

Можно ли начать на чистом PHP и перейти на Laravel позже?

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

Нужен ли фреймворк для безопасности?

Фреймворк снижает риск типовых ошибок, но не гарантирует безопасность. И с Laravel, и без него нужны ревью кода, обновление зависимостей, правильные настройки сервера и защита данных.

Какая версия PHP актуальна?

Выбирайте версию, которая ещё получает исправления безопасности. Актуальные сроки поддержки смотрите на официальном сайте PHP, а совместимость с вашими библиотеками и хостингом проверяйте перед стартом.

Если нужно выбрать технологию под вашу задачу или собрать сайт, посмотрите страницу про создание сайтов или обсудите проект со мной в Telegram.