2017-04-16 107 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組件的項目中收到此錯誤,請檢查以確保已安裝配置組件。

相關問題