2017-04-16 103 views
0

当建立一个简单的网站的Silex和Symfony的成分,我收到以下错误安装FormServiceProvider售后服务:尝试从命名空间加载类“XmlUtils”“的Symfony 分量 CONFIG 的Util”

XliffFileLoader.php中的ClassNotFoundException第54行:

试图从命名空间“Symfony \ Component \ Config \ Util”中加载类“XmlUtils”。 你忘记了另一个命名空间的“使用”语句吗?

模板是在这里:

{% extends 'base.html.twig' %} 

{% block body %} 
    <h1>{{ page.title }}</h1> 
    <p>By {{ page.author }}, published on {{ page.publishedAt|date('m/d/Y') }}</p> 
    <pre>{{ page.content }}</pre> 
    <hr/> 
    {{ form_start(form) }} 
    {{ form_body(form) }} 
    {{ form_end(form) }} 
{% endblock %} 

我也跟着安装方向的位置:

https://silex.sensiolabs.org/doc/2.0/providers/form.html

我读了一些其他问题,其中大部分谈缺少全局名称空间标识符(\DomDocument而不是DomDocument,它继承了本地名称空间),或者未安装php-xml,或者缺少配置。这些都不是问题,在这里,但这里是一个涵盖了其中的两个三:

Symfony app_dev.php install \DOMDomain error

,这里是配置来电:

$this->app->register(new ServiceControllerServiceProvider()); 
$this->app->register(new LocaleServiceProvider()); 
$this->app->register(new TranslationServiceProvider(), [ 
    'locale_fallbacks' => ['en'], 
    'translator.messages' => [], 
    'translator.domains' => [], 
]); 
$this->app->register(new AssetServiceProvider()); 
$this->app->register(new TwigServiceProvider(), [ 
    'twig.path' => self::TEMPLATE_DIR 
]); 
$this->app->register(new FormServiceProvider()); 
$this->app->register(new MonologServiceProvider()); 
$this->app->register(new HttpFragmentServiceProvider()); 

最后两人被建议作为的那些基于配置错误的罪魁祸首。

这种情况如何解决这个错误?

回答

2

解决这个问题是由寻找指定的文件暗示:

private function extract($resource, MessageCatalogue $catalogue, $domain) 
{ 
    try { 
     $dom = XmlUtils::loadFile($resource); 
    } catch (\InvalidArgumentException $e) { 
     throw new InvalidResourceException(sprintf('Unable to load "%s": %s', $resource, $e->getMessage()), $e->getCode(), $e); 
    } 

管线54开始$dom第四行。 PhpStorm显示以下两个use语句没有引用任何东西:

use Symfony\Component\Config\Util\XmlUtils; 
use Symfony\Component\Config\Resource\FileResource; 

这使我想知道,从来到,导致symfony/config组件。我又回到了Silex的FormServiceProvider文档和运行记住这一行:

composer require symfony/validator symfony/config 

注二等列表。或者我忘了键入或(我记得)我没有键入它,它没有安装。也许它扔了一个错误,我没有抓住它?我不知道。但是,如果您在使用Symfony组件的项目中收到此错误,请检查以确保已安装配置组件。

相关问题