В фреймворке Symfony есть такое понятие как Fixtures (фикстуры). Давайте разберемся что это такое и для чего это нужно.

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

Если мы говорим о миграциях, то они создают нам структуру (схему) базы данных. Они определяют таблицы, которые будут в нашей базе данных и те колонки, которые будут в этих таблицах.

Но, миграции не отвечают за те данные, которые будут находиться в этих таблицах. Чтобы добавить эти записи, нам как раз и пригодится этот инструмент - Fixtures. Они как раз и отвечают за записи в таблицах.

Где этот функционал может использоваться?

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

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

Fixtures можно использовать также для того, чтобы на сервере на production быстро развернуть какие-либо данные для работы этого сервера.

Например, мы можем создать каких-то типовых пользователей, которые будут в любом проекте, независимо от того, где он находится (development или production) среда.

Мы зашли на сервер и создали там администратора, какого-то еще пользователя или какие-то другие данные, которые обязательно должны быть на вашем проекте. 

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

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

Имея Fixtures в Symfony мы можем запускать механизм создания этих записей. Один раз написали их и с помощью командной строки запустили их и изменения перенеслись в базу данных.

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