严重错误:ZF2骨架应用程序中找不到“Locale”类

16

我刚刚按照提供的说明安装了ZF2 beta5应用程序

$ git clone git://github.com/zendframework/ZendSkeletonApplication.git ./
Cloning into '.'...
remote: Counting objects: 1494, done.
remote: Compressing objects: 100% (660/660), done.
remote: Total 1494 (delta 681), reused 1373 (delta 581)
Receiving objects: 100% (1494/1494), 397.42 KiB | 357 KiB/s, done.
Resolving deltas: 100% (681/681), done.

$ php composer.phar install
Installing dependencies
  - Installing zendframework/zendframework (dev-master)
    Cloning d6b0afe61149c6d0669743aab5c73285c42cd0db

zendframework/zendframework suggests installing doctrine/common (Doctrine\Common >=2.1 for annotation features)
Writing lock file
Generating autoload files

当我访问应用程序时,出现以下错误:

致命错误:在第220行./vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php中找不到“Locale”类。

我还没有尝试安装建议的Doctrine(因为最终我不想使用Doctrine)。

有人知道如何解决这个问题吗?


我也遇到了同样的问题,但是我还没有找到解决方案 :( - Teodor Talov
我曾经遇到过同样的问题。我在Mac OSX上使用MAMP,这个链接解决了我的问题:http://blog.geertvd.be/2011/05/18/installing-the-intl-extension-on-mamp/ - Mart Coul
1个回答

53

您需要安装 intl PHP 扩展。

对于基于 APT 的系统,请尝试: sudo apt-get install php5-intl
对于基于 YUM 的系统,请尝试: sudo yum install php-intl
对于 macOS,请参考这篇文章,但请检查您所拥有的 PHP 版本并下载正确的源代码。

您可能需要在之后重启 PHP 或 Web 服务器。


4
然后需要重新启动 php - Max
但是为什么它甚至需要intl扩展呢?它是否依赖于一个只有少数开发人员使用的附加扩展名,这不是荒谬的吗? - Swader
1
我们处于Beta测试阶段。Beta测试的一个目的是找出哪些方面有效,哪些方面无效。显然,这并没有像我们希望的那样顺利! - Rob Allen
我不是在评判,我知道漏洞是可以预料的,但即使在测试版中,让一个扩展依赖关系悬而未决似乎有些奇怪。这是一个很容易解决的问题,而且绝非小事一桩。 - Swader
这仍然是一个常见的问题,取决于网站托管的位置,可能无法修复。如果您的托管提供商不支持更改PHP配置,并且应用程序依赖于i18n相关代码,则没有其他设置方式。某种内置支持确实比依赖于很少安装在托管服务器上的扩展要好得多。 - Vilinkameni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接