4

在为Sylius成功安装和更新我的项目文件夹中的所有供应商后,我尝试运行此代码:

应用程序/控制台 sylius:install --fixtures

我收到此错误:

PHP 致命错误:第 51 行的 C:\wamp\www\sylius\vendor\ symfony\symfony\src\Symfony\Component\Locale\Locale.php 中找不到类“ResourceBundle”

然后我尝试了这里给出的所有可能的解决方案

在 php 中安装了 intl 扩展(工作成功)。然后运行这个命令

php build-data.php '你的 ICU 版本'

在运行上面的命令我得到这个:

'which' 不被识别为内部或外部命令、可运行程序或批处理文件。未安装命令“svn”

我想知道这个问题是否有另一种解决方法。请提前帮助和感谢。

PS - 我的系统上没有运行 SVN。我正在使用 icu*46.dll

有人遇到过这个吗??

4

1 回答 1

1

此错误与 PHP 国际扩展有关。确保它已启用并且您拥有最新版本。

快速测试:

<?php
    var_dump(extension_loaded('intl'));

确保您的 PHP 文件夹在您的 %PATH% 环境变量中正确注册。

Control Panel - System - Advanced - ...

否则,ICU dll 不会由 PHP 作为 Apache 模块加载 - 不会显示错误消息,但未启用扩展。

检查以及从phpinfo()!不与...

php -m

... 或 ( windows = findstr, linux/cygwin = grep )

php -i | findstr intl

检查您的 php.ini 中是否启用了扩展(不知道 WAMP 的扩展路径,所以请调整它)

extension=php_intl.dll

正如我所看到的,您在 Windows 上并使用 WAMP,您必须获得扩展的预编译版本。

http://windows.php.net/download/上的包都包含 ext 文件夹中的 php_intl.dll。

确保使用与 PHP 相同版本的 MSVC 编译 ICU

如果 ICU 是用VC10编译的,而 PHP 是用VC9编译的,你就会遇到问题。

尽管 php -m 和 php -i 检测到 INTL,但它不会出现在 phpinfo() 中。

于 2013-05-25T12:31:56.050 回答