2013-05-11 2 views
0

Je vais avoir des problèmes avec SonataAdminBundle lors de la modification ou la création:SonataAdminBundle sans intl l'extension

The Symfony\Component\Locale\Stub\StubNumberFormatter::getSymbol() is not implemented. Please install the 'intl' extension for full localization capabilities.

ou

Fatal error: Class 'ResourceBundle' not found in F:\xampp\htdocs\Symfony2\vendor\symfony\symfony\src\Symfony\Component\Locale\Locale.php on line 157

Je ne peux pas installer des extensions php dans mon hébergement

de base que j'ai trouvé this , mais cela fonctionne quand NumberFormatter est appelé, évidemment je dois créer chaque classe nécessaire pour appeler l'extension intl mais je demande ici à l'expert de se e toute autre solution solution/solution de contournement/suggestion pour obtenir du travail sans l'extension intl

Répondre

0

Le problème est que la fonction getSymbole n'est pas définie dans Symfony \ Component \ Locale \ Stub \ StubNumberFormatter. Cette méthode renvoie une exception, c'est son corps:

public function getSymbol($attr) 
{ 
    throw new MethodNotImplementedException(__METHOD__); 
} 

Il devrait être mis en œuvre pour supprimer cette exception, vous pouvez modefied comme ceci:

 public function getSymbol($attr) 
    { 
    switch($attr) { 
     case self::CURRENCY_SYMBOL: 
     return '$'; 
     case self::DECIMAL_SEPARATOR_SYMBOL: 
     return '.'; 
     case self::DIGIT_SYMBOL: 
     return '#'; 
     case self::EXPONENTIAL_SYMBOL: 
     return 'E'; 
     case self::GROUPING_SEPARATOR_SYMBOL: 
     return ','; 
     ; 
    } 

Cette modification fonctionne très bien avec moi, j'ai eu la même problème. Mais si vous mettez à niveau votre version de symfony via composer, vous risquez de perdre votre modification.