Laravel 4.1 - 关于在哪里放置一些自定义配置的建议

时间:2014-03-03 18:39:58

标签: php configuration laravel-4

我正在使用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中,除了其他地方?需要建议。

谢谢!

1 个答案:

答案 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'); // 输出:这是第一个子消息