我正在使用Laravel 4.1开发一个小应用程序。我创建了一个app / acme文件夹来包含我的大多数应用程序特定代码。我有一个名为app / acme / AcmeServiceProvider.php的服务提供商,我在其中设置IoC绑定,自定义视图模板和一些配置变量。
我的自定义服务提供商
...
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.');
...
我认为在我的服务提供商中拥有自定义的查看位置是有道理的,但下面的两个条目呢?
第一个配置是设置我可以从我的Controller中检索的值,以便我可以构建一个外部URL。
第二个配置是设置一个值,我可以用于我发送给用户的电子邮件主题。我想只是硬编码这个值,但我想把这样的可配置文本放在一个地方,以便于定制。我也希望将来能够使用多种语言,所以我想有一些不同语言的“lang”目录可能是一个答案吗?
我的问题:是否有更好的地方放置这两个配置语句而不是我的服务提供商?也许它们不应该被添加到Config中,除了其他地方?需要建议。
谢谢!
答案 0 :(得分:2)
让我们尝试创建app / config / acme.php
并在那里返回数组。
返回数组(
'EXTERNAL_SITE_URL' => 'SITE_URL',
'EMAIL_SUBJECT' => 'SUBJECt_VALUE'
);
尝试像config :: get('acme.EXTERNAL_SITE_URL')那样访问。我希望它适合你。请分享你的经验......
@Edited:我测试过这对我有用,所以也适合你:)
@Edited:语言部分
您可以在app / lang / en / acme.php中添加文件(例如表示英文)
如果有其他语言,您可以添加app / lang / it / acme.php(意大利语例如)
返回数组(
“abc”=> “这是文字”,
“def”=>阵列(
"sub1" => "this is fist sub message",
"sub2" => "this is on sencond number",
)
);
然后你就可以得到App :: setLocale('en');
echo Lang :: get('acme.abc'); // 输出:这是文本
echo Lang :: get('acme.def.sub1'); // 输出:这是第一个子消息