Grav CMS Когда база данных — лишняя деталь

30 Apr, 2026

Знакомая ситуация: для нового проекта, будь то блог, портфолио или сайт-визитка, вы по привычке разворачиваете тяжеловесную CMS, настраиваете MySQL, ставите плагины для кэширования и молитесь, чтобы всё это не тормозило. А что, если я скажу, что для огромного количества сайтов база данных — это просто лишняя, усложняющая жизнь деталь? Сегодня мы посмотрим на проект, который разделяет эту философию — Grav.

Grav — это современная CMS на PHP, которая полностью обходится без базы данных. Вместо таблиц и SQL-запросов она использует обычные файлы: контент хранится в Markdown, а конфигурация — в YAML. Звучит просто? На деле это оказывается невероятно удобно и быстро. Давайте разберемся, почему этот проект, собравший более 15 000 звезд на GitHub, может стать вашим новым фаворитом.

Что это такое и кому пригодится?

Grav — это так называемая Flat-File CMS (файловая CMS). Вся структура вашего сайта, все страницы, статьи и настройки лежат в виде обычной папочной структуры.

  • /user/pages: здесь живут ваши страницы в виде .md файлов.
  • /user/config: тут лежат YAML-файлы с настройками.
  • /user/themes: сюда кладутся темы оформления.
  • /user/plugins: а сюда — плагины.

Такой подход кардинально меняет дело. Сайт становится портативным, его легко переносить с сервера на сервер, а для резервного копирования достаточно просто заархивировать папку. Но главная магия — в работе с Git. Весь ваш сайт, включая контент, можно (и нужно!) хранить в системе контроля версий. Правки в статьях, смена настроек — всё это коммиты, которые можно отслеживать и откатывать.

Кому это нужно?

  • Разработчикам, которые ценят скорость, простоту и контроль.
  • Блогерам и авторам, которым нужен удобный редактор Markdown и минимум головной боли с хостингом.
  • Небольшим компаниям для создания быстрых сайтов-визиток и лендингов.
  • Техническим писателям для ведения документации или базы знаний.

Ключевые фишки Grav

Давайте копнем глубже и посмотрим, что делает Grav таким привлекательным.

1. Скорость, сравнимая со статикой

Отсутствие запросов к базе данных творит чудеса. Grav считывает нужные файлы, обрабатывает их и отдает пользователю. Но это еще не все. Внутри у него мощная система кэширования (на базе Doctrine Cache), которая сохраняет уже обработанные страницы. В итоге скорость ответа сервера часто сравнима со статическими сайтами, сгенерированными каким-нибудь Jekyll или Hugo. Только здесь у вас остается вся мощь динамического PHP.

2. Технологический стек, который радует глаз

Разработчики Grav не стали изобретать велосипеды, а взяли лучшие компоненты из мира PHP и собрали их вместе:

  • Twig: один из самых популярных и удобных шаблонизаторов. Если вы работали с Symfony или Drupal, вы будете в своей тарелке.
  • Markdown: для контента используется простой и понятный Markdown. Никаких громоздких WYSIWYG-редакторов.
  • YAML: вся конфигурация в читаемых .yaml файлах. Просто, понятно и легко редактируется.
  • Компоненты Symfony: для обработки консольных команд, событий и других внутренних механизмов используются проверенные временем решения от Symfony.

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

3. Удобная работа из консоли

Grav поставляется с собственным консольным инструментом GPM (Grav Package Manager). Это настоящий npm или composer в мире Grav. Хотите установить новый плагин? Пожалуйста:

bin/gpm install <plugin_name>

Нужно обновить ядро CMS или все установленные плагины? Нет проблем:

# Обновить ядро
bin/gpm selfupgrade

# Обновить плагины и темы
bin/gpm update

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

Как начать работу?

Проще не придумаешь. Самый удобный для разработчика способ — через Composer:

composer create-project getgrav/grav ~/webroot/grav

Эта команда скачает последнюю стабильную версию Grav в папку ~/webroot/grav. После этого нужно установить базовые зависимости — плагины и тему по умолчанию.

cd ~/webroot/grav
bin/grav install

Всё! Теперь достаточно настроить ваш веб-сервер (Nginx или Apache) так, чтобы корень сайта указывал на папку ~/webroot/grav, и ваш новый сайт готов к работе. Никаких инсталляторов, настроек подключения к базе данных и прочей рутины.

Где это использовать на практике?

Grav идеально подходит для проектов, где не нужна сложная логика с реляционными данными.

  • Блог: идеальный кандидат. Статьи в Markdown, удобное управление через Git.
  • Сайт-портфолио: быстрый, легко кастомизируемый, не требует мощного хостинга.
  • Документация к проекту: структура папок идеально ложится на структуру разделов документации.
  • Промо-сайты и лендинги: где важна скорость загрузки и простота контент-менеджмента.

Конечно, пытаться построить на Grav второй Facebook или сложный интернет-магазин с тысячами товаров не стоит. Для таких задач по-прежнему нужны реляционные базы данных. Но для своего класса задач Grav — почти идеальный инструмент.

Grav — это глоток свежего воздуха в мире CMS. Он берет лучшие практики из мира статических генераторов сайтов (скорость, версионирование контента) и соединяет их с гибкостью и мощью PHP. Если вы устали от сложности традиционных систем и ищете что-то простое, быстрое и приятное в разработке — обязательно дайте Grav шанс. Возможно, вы обнаружите, что для большинства ваших будущих проектов база данных действительно была лишней деталью.

PHPStan Discord PHP Tests OpenCollective OpenCollective OpenCollective