簡體   English   中英

Symfony 2.3.5致命錯誤:在服務器上找不到類“ResourceBundle”

[英]Symfony 2.3.5 Fatal error: Class 'ResourceBundle' not found on Server

我正在使用帶有PHP版本5.3.27的NameCheap主機服務器並且沒有安裝任何intl擴展。

雖然我嘗試將這些行放在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

如果沒有解決方案,我可以使用哪個主機?

提前致謝。

至於其他人建議,需要intl擴展。 你有兩個選擇,第一個是使用native c intl擴展。 安裝取決於您的操作系統。 第二個選項是使用php編寫的symfony intl擴展。 要安裝php擴展,只需添加即可

"symfony/intl": "2.5.6"

composer.json文件中的require部分。 如果本機intl擴展不可用,則sf2將故障轉移以使用php版本。 你可以閱讀更多: 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM