一个php平台安装问我国际扩展,但它似乎已经安装
Posted
技术标签:
【中文标题】一个php平台安装问我国际扩展,但它似乎已经安装【英文标题】:A php platform install ask me intl extension, but it seems already installed 【发布时间】:2014-11-01 15:30:08 【问题描述】:在 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
但我已经安装了国际扩展:
# 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
有什么问题? 谢谢 亚历山德拉
【问题讨论】:
安装的是什么版本的symfony/icu
?
Symfony 版本 2.3.19。我不想更改语言环境,我想取消翻译一些捆绑包。
我问的不是 symfony 版本,而是 icu 版本。您可以在composer.lock
文件中找到它。
我也有同样的问题。这发生在我的生产环境(ubuntu 14)而不是开发环境(debian)中。在生产中php5-intl
触发了libicu52
的依赖安装,这里可能存在一些向后兼容性问题
【参考方案1】:
你需要重新安装包 int1
apt-get install php-intl
service apache2 restart
【讨论】:
【参考方案2】:做一件可能有助于解决此错误的事情
打开 php.ini 文件
删除;extension=php_intl.dll
的评论
extension=php_intl.dll
并重新启动 Apache 服务器
【讨论】:
【参考方案3】:默认情况下,symfony2 可以管理 "en" 扩展,但要获得其他语言,您必须安装 php-intl
扩展。
最简单的选择是与作曲家一起安装,因为它为你暴露了全局变量......等等
所有这些都在这里解释symfony/components/intl。
对于作曲家扩展安装,它是symfony/components/using_components。
所以在读完这个之后,你需要执行:
composer require symfony/intl
-- 编辑
好的,对不起,我刚刚测试了解决方案,事实是:如果您使用 symfony 组件,您只能访问“en”。我和你有同样的问题,我的 php5-intl 扩展已安装并激活,但错误仍然存在。对我来说,我继续在文件顶部写 use Symfony\Component\Intl\DateFormatter\IntlDateFormatter;
,而不是使用基本的 php5 扩展名。
【讨论】:
【参考方案4】:检查解决方案:
在 Symfony 2.0 中:
app/config/config.yml
框架: 会话: default_locale:it_IT
在 Symfony 2.1+ 中:
app/config/config.yml
框架: default_locale: it_IT
【讨论】:
Symfony 标准版的安装已经设置了这个参数。我对已经设置的参数有同样的问题以上是关于一个php平台安装问我国际扩展,但它似乎已经安装的主要内容,如果未能解决你的问题,请参考以下文章
您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展”处理方法