3

我正在使用带有 PHP 版本 5.3.27 且未安装 intl 扩展的 NameCheap 主机服务器。

尽管我尝试将这些行放入其中,php.ini但仍然无法正常工作。

[PHP]
detect_unicode = off
suhosin.executor.include.whitelist="phar"
date.timezone=Europe/Berlin
short_open_tag = off
magic_quotes_gpc = off
extension=pdo.so
extension=pdo_mysql.so

extension=intl.so
extension=php_intl.dll

[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING

所以,当我执行我的网站时,我遇到了这个问题:

FatalErrorException: Error: Class 'ResourceBundle' not found in /home/esdrhazc/vendor/symfony/symfony/src/Symfony/Component/Intl/ResourceBundle/Reader/BinaryBundleReader.php line 31

为了避免这个问题,我添加了下一行到autoload.php

use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;

/**
 * @var ClassLoader $loader
 */
$loader = require __DIR__.'/../vendor/autoload.php';

// intl
if (!function_exists('intl_get_error_code')) {
    require_once  __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';

    $loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');

$loader->registerPrefixFallbacks(
    array(__DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs')
);

}

$loader->add('Gestor', __DIR__.'/../src');

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

return $loader;

我还能做什么?这很奇怪,因为如果我在主机内部导航,以前的路径不存在,正确的是:

/../vendor/symfony/symfony/src/Symfony/Component/Locale/stubs

但我尝试改变它,它仍然不起作用。而且,我找不到functions.php

如果没有解决方案,我可以使用哪个主机?

提前致谢。

4

1 回答 1

0

正如其他人所建议的那样,您需要intl扩展。您有两个选择,第一个是使用本机c intl扩展。安装将取决于您的操作系统。第二种选择是使用intlphp. 要安装php扩展只需添加

"symfony/intl": "2.5.6"

requirecomposer.json文件中的部分。如果本机intl扩展不可用,sf2则将故障转移到使用php版本。你可以阅读更多:这里

于 2014-10-28T03:18:48.900 回答