Фикстуры

Интересное название "фикстуры" скрывает под собой обычную загрузку тестовых данных в базу проекта.

Естественно это происходит в окружении dev, для которого мы создаем отдельную базу и прописываем подключение в файле ".env.dev"

Всеми этими процессами управляет DoctrineFixturesBundle.

В официальной документации очень продробно описан процесс установки данного бандла.

Рассмотрим пример использования (git repository)

В проекте есть модуль "Новости", загрузим туда несколько тестовых записей.

        
        namespace App\DataFixtures;

        use App\Entity\News;
        use Doctrine\Bundle\FixturesBundle\Fixture;
        use Doctrine\Persistence\ObjectManager;

        class AppFixtures extends Fixture
        {
            public function load(ObjectManager $manager)
            {
                $news1 = new News();
                $news1->setName('В лиге боёв на голых кулаках установлен рекорд. Бойца нокаутировали за 3 секунды');
                $news1->setAnons('13 ноября в Майами (штат Флорида, США) состоялся турнир лиги кулачных боёв Bare Knuckle FC 14. В его карде прошла встреча между Улисессом Диасом с Кубы и Донейллом Бенедетто, представляющим США.');
                $news1->setContent('В бою был установлен исторический рекорд промоушена. Диас при помощи жёсткого правого бокового нокаутировал оппонента за три секунды. Это самая быстрая победа в истории Bare Knuckle FC, сообщает пресс-служба организации на странице в «Инстаграме».');
                $news1->setPublish(new \DateTime());
                $news1->setActive(true);
                $manager->persist($news1);

                $news2 = new News();
                $news2->setName('Турция — Россия. Прогноз на матч: Черчесов прижмётся к воротам, судья уйдёт в тень.');
                $news2->setAnons('15 ноября состоится матч Лиги наций Турция — Россия. Начало — в 20:00 мск. Букмекеры уже дали прогноз, в котором считают фаворитом хозяев: поставить на победу Турции в букмекерских конторах можно с коэффициентом 2.62. Успех России оценён букмекерами коэффициентом 3.13. Ставки на ничью принимаются с коэффициентом 3.44.');
                $news2->setContent("Букмекерские коэффициенты на матч Лиги наций Турция — Россия 15 ноября 2020 года
Букмекеры считают, что матч Турция — Россия 15 ноября не получится результативным: тотал больше 2.5 мяча идёт за 2.34, а тотал меньше 2.5 мяча — за 1.74. Поставить на «обе забьют» можно за 1.98. На гол в первые 15 минут дают 3.70."); $news2->setActive(true); $news2->setPublish(new \DateTime()); $manager->persist($news2); $manager->flush(); } }

Далее запускаем команду

        
         php bin/console doctrine:fixtures:load
        
    

Тестовые данные должны появиться в базе.