Symfony 4 — загрузить YML-файл в фикстуры

Я хотел бы получить помощь по конкретной теме о Symfony 4.1.
Я хотел бы загрузить некоторые данные, хранящиеся в файле YML, чтобы использовать приборы.
Чтобы загрузить этот файл, я использовал инъекции зависимостей, но я не понимаю, почему моя функция загрузки не достигается.

Это мой код ниже:

AppExtension:

    <?php
namespace App\DependencyInjection;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\DependencyInjection\Extension\Extension;

/**
*/
class AppExtension extends Extension
{
/**
* @see Symfony\Component\DependencyInjection\Extension.ExtensionInterface::load()
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);

$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../config'));
$loader->load('services.yml');
//$loader->load('parameters.yml');

echo __DIR__.'/../Resources/DataFixtures';
die();

$fixture_loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/DataFixtures'));
$fixture_loader->load('Patients.yml');

$data_loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/datas'));
//$data_loader->load('first_name.yml')
}
}

Configuration.php:

<?php

namespace App\DependencyInjection;

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

/**
* This is the class that validates and merges configuration from your app/config files.
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
*/
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('app');

// Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for
// more information on that topic.

return $treeBuilder;
}
}

Что касается светильников:

<?php
namespace App\DataFixtures\ORM;

use Doctrine\Common\Persistence\ObjectManager;
use App\Entity\Patient;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Symfony\Component\DependencyInjection\ContainerInterface;


class LoadPatientData extends Fixture {
/**
*
* @var ContainerInterface
*/
private $container;


public function __construct(ContainerInterface $container = null)
{
$this->container = $container;
}

public function load(ObjectManager $manager)
{
//var_dump($this->container)

$patientsArray = $this->container->getParameter('Patient');

foreach( $patientsArray as $name => $object )
{
$patient = new Patient();

foreach( $object as $key => $value )
{
$patient->{$key}($value);
}

$manager->persist($patient);
$this->addReference($name, $patient);
}
$manager->flush();
}

}

Вот дерево папок:
дерево папок

Ошибка консоли:
Ошибка консоли

Заранее спасибо за помощь.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]