2012-04-25 36 views
1

在我的Symfony 1.4的項目,到現在爲止,這是我如何用國際化setflash的消息在我的行動:在Symfony 1.4 ProjectConfiguration類中使用loadHelpers I18N有什麼缺點嗎?

$message = $this->getContext()->getI18N()->__('message’); 
$this->getUser()->setFlash('notice', $message); 

但我只是找到了一個最簡單的方法。在這裏,我在我的projectconfiguration類使用的代碼:

public function setup() 
{ 
    $this->loadHelpers(array('I18N')); 
} 

,然後在這裏我在動作中使用的代碼:

$this->getUser()->setFlash('error', __('message')); 

對我來說,因爲我沒有使用非常方便getContext-> getI18N無處不在,但我想知道是否有使用此方法的缺點?

回答

3

我總是在許多項目中使用這種方法,我沒有看到任何缺點。

幫助者在這裏給我們一個有用的函數庫。一些幫助函數返回html(impov),它們專用於模板,但在I18N或Date的情況下,將它們放在一個動作中會很有用。

如果你不希望加載幫手的全局視圖,您可以使用:

sfApplicationConfiguration::getActive()->loadHelpers(array('I18N')); 
+0

謝謝您的回答。我還注意到loadHelpers在frontendConfiguration.class中工作正常,但在projectConfiguration.class中不起作用。我有以下錯誤:未捕獲的異常'sfException'與消息'調用未定義的方法ProjectConfiguration :: loadHelpers ... – Sandrino 2012-05-02 11:59:47

+0

由於'loadHelpers' on't'[ApplicationConfiguration'](http://trac.symfony-project。 org/browser/branches/1.4/lib/config/sfApplicationConfiguration.class.php#L618)(即在應用程序範圍內),您無法從項目範圍加載它。 – j0k 2012-05-02 12:12:54