Files
torsearch/src/User/Framework/DataFixtures/PreferenceFixtures.php

103 lines
2.9 KiB
PHP

<?php
namespace App\User\Framework\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
class PreferenceFixtures extends Fixture
{
public function load(ObjectManager $manager): void
{
$preferences = [
[
'id' => 'codec',
'name' => 'Codec',
'description' => null,
'enabled' => true
],
[
'id' => 'resolution',
'name' => 'Resolution',
'description' => null,
'enabled' => true
],
[
'id' => 'language',
'name' => 'Language',
'description' => null,
'enabled' => true
],
[
'id' => 'provider',
'name' => 'Provider',
'description' => null,
'enabled' => true
]
];
foreach ($preferences as $preference) {
$manager->persist((new \App\User\Framework\Entity\Preference())
->setId($preference['id'])
->setName($preference['name'])
->setDescription($preference['description'])
->setEnabled($preference['enabled'])
);
}
$manager->flush();
$options = [
[
'preference_id' => 'resolution',
'name' => '720p',
'value' => '720p',
'enabled' => true
],
[
'preference_id' => 'resolution',
'name' => '1080p',
'value' => '1080p',
'enabled' => true
],
[
'preference_id' => 'resolution',
'name' => '2160p',
'value' => '2160p',
'enabled' => true
],
[
'preference_id' => 'codec',
'name' => '-',
'value' => '-',
'enabled' => true
],
[
'preference_id' => 'codec',
'name' => 'h264',
'value' => 'h264',
'enabled' => true
],
[
'preference_id' => 'codec',
'name' => 'h265/HEVC',
'value' => 'h265',
'enabled' => true
]
];
$preferenceRepository = $manager->getRepository(\App\User\Framework\Entity\Preference::class);
foreach ($options as $option) {
$manager->persist(
(new \App\User\Framework\Entity\PreferenceOption())
->setPreference($preferenceRepository->find($option['preference_id']))
->setName($option['name'])
->setValue($option['value'])
->setEnabled($option['enabled'])
);
}
$manager->flush();
}
}