2013-11-03 84 views
3

我正在使用NameCheap主機服務器和PHP版本5.3.27,並且沒有安裝intl擴展名。Symfony 2.3.5致命錯誤:在服務器上未找到類'ResourceBundle'

雖然我試圖把這行寫在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

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

在此先感謝。

+1

我想你應該諮詢你的NameCheap關於啓用'intl'擴展,這是唯一解決這個問題(我有同樣的問題,雖然不在NameCheap上)。 Symfony中的驗證器需要「intl」。然而,關於選擇託管公司的最後一個問題會導致在這裏得到主題答案。 OFF:我通常非常滿意地使用GoDaddy –

回答

0

正如其他人所建議,您需要intl擴展名。你有兩個選擇,第一個是使用原生cintl擴展名。安裝將取決於您的操作系統。第二種選擇是使用在php中編寫的symfony intl擴展名。要安裝php擴展只需添加

"symfony/intl": "2.5.6" 

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

相關問題