一个php平台安装问我intl扩展,但它似乎已经安装

时间:2014-09-08 12:01:27

标签: php symfony intl orocrm

在orocrm安装期间(使用symfony 2开发的平台)我收到此错误

Fatal error: Uncaught exception 'Symfony\Component\Intl\Exception\MethodArgumentValueNotImplementedException' with message 'The   Symfony\Component\Intl\Collator\Collator::__construct() method's argument $locale value 'fr_FR' behavior   is not implemented. Only the locale "en" is supported.  Please install the "intl" extension for full    localization capabilities.' in /Users/ale/Sites/educacloud-  bo/vendor/symfony/symfony/src/Symfony/Component/Intl/Collator/Collator.php:80
Stack trace:
#0 /Users/ale/Sites/educacloud-bo/app/SymfonyRequirements.php(619):   Symfony\Component\Intl\Collator\Collator->__construct('fr_FR')
#1 /Users/ale/Sites/educacloud-bo/app/OroRequirements.php(24): SymfonyRequirements->__construct()
#2 /Users/ale/Sites/educacloud-bo/app/oro-check.php(6): OroRequirements->__construct()
#3 {main}
thrown in /Users/ale/Sites/educacloud-bo/vendor/symfony/symfony/src/Symfony/Component/Intl/Collator/Collator.php on line 80

但我安装了intl扩展名:

# php -i | grep intl
 /usr/local/php5/php.d/50-extension-intl.ini,
 intl 
 intl.default_locale => it_IT => it_IT
 intl.error_level => 0 => 0
我的浏览器上的

和php_info()给了我这些结果:

version 1.1.0
ICU version 4.6
ICU Data version    4.6

有什么问题? 谢谢 亚历山德拉

4 个答案:

答案 0 :(得分:2)

默认情况下,symfony2可以管理“en”扩展名,但要获得其他语言,您必须安装php-intl扩展名。

最简单的选择是使用composer安装它,因为它会为你公开全局变量......等等。

所有这些都在symfony/components/intl解释。

对于作曲家扩展程序安装,它是symfony/components/using_components

因此,在阅读之后,您需要执行:

composer require symfony/intl

- 编辑

好的,对不起,我只是测试解决方案,事实是:如果你使用symfony组件,你只能访问“en”。我有同样的问题,我的php5-intl扩展已安装并激活,但错误仍然存​​在。对我而言,我继续在我的文件顶部写use Symfony\Component\Intl\DateFormatter\IntlDateFormatter;而不是使用基本的php5扩展。

答案 1 :(得分:1)

您需要重新安装软件包int1

apt-get install php-intl

service apache2 restart

答案 2 :(得分:0)

检查解决方案:

在Symfony 2.0中:

的应用程序/配置/ config.yml

框架:   session:{default_locale:it_IT}

在Symfony 2.1 +中:

的应用程序/配置/ config.yml

框架:   default_locale:it_IT

答案 3 :(得分:0)

做一件可能有助于解决此错误的事情 打开php.ini文件 从;extension=php_intl.dll

中删除评论
extension=php_intl.dll

并重新启动Apache服务器