Ответы пользователя по тегу YAML
  • Как создать проект на Symfony2 с конфигами на PHP, а не на YAML?

    @unity_ultra_hardcore
    В бандле у вас есть файл DependencyInjection/AcmeAppExtension.php.
    Если его содержимое привести примерно к такому виду, то должно получиться (правда сам я не пробовал этим заниматься).
    <?php
    
    namespace Acme\AppBundle\DependencyInjection;
    
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    use Symfony\Component\Config\FileLocator;
    use Symfony\Component\HttpKernel\DependencyInjection\Extension;
    use Symfony\Component\DependencyInjection\Loader;
    
    /**
     * This is the class that loads and manages your bundle configuration.
     *
     * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
     * @codeCoverageIgnore
     */
    
    class AcmeAppExtension extends Extension
    {
        /**
         * {@inheritdoc}
         */
        public function load(array $configs, ContainerBuilder $container)
        {
            $configuration = new Configuration();
            $this->processConfiguration($configuration, $configs);
    
            $loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__ . '/../config/'));
            $loader->load('services.php');
    
            if ($container->getParameter('kernel.environment') == 'dev') {
                $loader->load('services_dev.php');
            }
    
            if ($container->getParameter('kernel.environment') == 'test') {
                $loader->load('services_test.php');
            }
        }
    }

    P.S. я лично тоже считаю, что это большая глупость - отказываться от yml в пользу php-конфигов: это нарушает основной принцип конфигурации - ее детерминированность. В php-конфиге можно наворотить какой-то логики при вычислении того или иного параметра, что отрицательно скажется на удобстве поддержки проекта.
    Ответ написан
    Комментировать