2014-03-03 48 views
0

我正在使用Laravel 4.1開發一個小應用程序。我創建了一個應用/ acme文件夾來包含我的大部分特定於應用的代碼。我有一個名爲app/acme/AcmeServiceProvider.php的服務提供者,我在這裏設置IoC綁定,自定義視圖模板和一些配置變量。Laravel 4.1 - 關於在哪裏放置一些自定義配置的東西的建議

我的自定義服務提供商

... 

View::addLocation(app('path').'/OneTimeNote/Views'); 

/* @TODO - Maybe a better place to put this would be in the app/config folder? */ 
Config::set('EXTERNAL_SITE_URL', 'http://www.example.com/#/'); 

/* @TODO - Probably could find a better spot for this, possibly in a lang folder? */ 
Config::set('EMAIL_SUBJECT', 'The note you created has been read and destroyed.'); 

... 

我認爲有我的自定義視圖的位置在我的服務提供商是有道理的,但關於它下面的兩個條目是什麼?

第一個配置是設置一個值,我可以從我的控制器檢索,以便我可以建立一個外部URL。

第二個配置是設置一個值,我可以用於我發送給用戶的電子郵件主題。我考慮過對這個值進行硬編碼,但我想把這種可配置的文本放在一個地方,以方便定製。我還想在未來使用多種語言,因此具有不同語言的某種'lang'目錄可能是我想的答案?

我的問題:是否有更好的地方來放置這兩個配置語句,而不是我的服務提供者?也許他們不應該被添加到配置中,而是在其他地方?需要諮詢。

謝謝!

回答

2

允許通過創建應用程序/配置/ acme.php

嘗試,並返回陣列有例如

返回陣列(

'EXTERNAL_SITE_URL' => 'SITE_URL', 

'EMAIL_SUBJECT'  => 'SUBJECt_VALUE' 

);

嘗試訪問像那個config :: get('acme.EXTERNAL_SITE_URL')。我希望它能爲你工作。請分享你的體驗....

@Edited:我已經測試了爲我工作,所以應該是你以及:)

@Edited:語言部分

您可以添加文件在app /郎/ EN/acme.php(例如,對於英語

如果有另一種語言,您可以添加應用程序/郎/它/ acme.php(意大利)

返回陣列(

「ABC」=> 「這是文本」,

「DEF」=>數組(

 "sub1" => "this is fist sub message", 

     "sub2" => "this is on sencond number", 
    ) 

);

然後你就可以像App :: setLocale('en');

echo lang :: get('acme。ABC'); // 輸出:這是文本

回聲郎::得到( 'acme.def.sub1'); // 輸出:這是拳頭子郵件

+0

感謝您的回答。我有什麼語言變化問題呢?對於如何組織可以在整個應用程序中使用的多種語言字符串,您有任何建議嗎? – Pathsofdesign

+1

我已經編輯lang部分的答案,希望它能爲你工作! – Kazmi

相關問題