#php #symfony #service
#php #symfony #Обслуживание
Вопрос:
Я получаю эту ошибку при добавлении новой службы:
[ОШИБКА 4] Ожидаемый начальный тег, ‘<‘ не найден (в n / a — строка 1, столбец 1)
Это новый services.yml
файл:
parameters:
acme_foo.class: AcmeFooBundleServicesFoos
services:
acme_foo:
class: %acme_foo.class%
arguments: [@doctrine]
В этом файле нет табуляций, только пробелы. Это DependencyInjection/Configuration.php
файл:
<?php
namespace AcmeFooBundleDependencyInjection;
use SymfonyComponentConfigDefinitionBuilderTreeBuilder;
use SymfonyComponentConfigDefinitionConfigurationInterface;
/**
* 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/extension.html#cookbook-bundles-extension-config-class}
*/
class Configuration implements ConfigurationInterface
{
/**
* {@inheritDoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('acme_foo');
// 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;
}
}
и DependencyInjection/AcmeFooExtension.php
:
<?php
namespace AcmeFooBundleDependencyInjection;
use SymfonyComponentDependencyInjectionContainerBuilder;
use SymfonyComponentConfigFileLocator;
use SymfonyComponentHttpKernelDependencyInjectionExtension;
use SymfonyComponentDependencyInjectionLoader;
/**
* 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}
*/
class RedconviveSubscriptionExtension extends Extension
{
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new LoaderXmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
}
Есть идеи, где ошибка? Похоже, это связано с services.yml
, но я проверил его и, похоже, его там нет.
Ответ №1:
Изменить
$loader = new LoaderXmlFileLoader
Для
$loader = new LoaderYamlFileLoader
DependencyInjection/AcmeFooExtension.php
в. Потому что вы загружаете yml
файл.