2013-05-11 5 views
0

У меня возникли проблемы с SonataAdminBundle при создании или редактирование:SonataAdminBundle без расширения аэроропорта

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

или

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

Я не могу установить расширение PHP в моем основного хостинге

Я нашел this , но он просто работает, когда вызывается NumberFormatter, очевидно, что я должен создать каждый класс, необходимый для вызова внутреннего расширения, но я спрашиваю здесь эксперта e любые другие способы решения/обходного пути/предложения для работы без расширения intl

ответ

0

Проблема в том, что функция getSymbole не определена в Symfony \ Component \ Locale \ Stub \ StubNumberFormatter. Этот метод генерирует исключение, это его тело:

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

Она должна быть реализована, чтобы удалить это исключение, вы можете modefied так:

 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 ','; 
     ; 
    } 

Эта модификация хорошо со мной работает, я имел та же проблема. Но если вы обновите версию symfony через композитор, вы можете потерять свою модификацию.