Should I be using env() outside my config files?

2020-04-05 07:51发布

I stumbled across this https://laravel.com/docs/5.4/configuration#configuration-caching in the documentation and it confused me a bit.

When I want an environment variable I use the env() function to return what I want. According to the above link it says I should be using the config() function instead to ensure that on production I am accessing the values through a cache.

e.g. These both return the same thing

env('APP_URL')

vs

config('app.url')

So should I be using config() or env() inside my app?

I assume that if I add a new env variable I will also need to update my config files?

标签: php laravel
1条回答
家丑人穷心不美
2楼-- · 2020-04-05 08:34

You should never use env() in the code directly. It's a good practice to use config(). In config files use env() to get the data from .env file.

In this case, you can easily override config values at runtime or during testing.

You also can use config caching.

To give your application a speed boost, you should cache all of your configuration files into a single file using the config:cache Artisan command.

Another reason is described in the docs:

You should typically run the php artisan config:cache command as part of your production deployment routine. If you execute the config:cache command during your deployment process, you should be sure that you are only calling the env function from within your configuration files.

查看更多
登录 后发表回答