How to create custom config file in Laravel

While developing web applications configuration plays a major role. Laravel framework makes it easy to handle configurations for complex applications with config files. All configuration files for the Laravel framework are stored in the config directory.

In Laravel, you can create custom config files as per your requirement. You can also use the config() helper to access configuration values for any config file.

The main reason to use config files is it's stored as global values and changes in those values can easily handle with config files otherwise we need to change those values in actual files that we statically used. Laravel will also cache those values so it will impact on performance positively.

In this example, we will create a new custom file for Google login.

Creating Config File

First of all, let's create a new php file in config directory and name it google.php. In this file, we will just store one value for this example.

<?php
	return [

	    'api_token' => env('GOOGLE_API_TOKEN', 'your default value'),

	];

Here, we just have created a file that returns an array containing an API token as a key. For the value of that key, we used the Environment variable. We have also configured the default value if environment variable is not found.

Let's add an environment variable to our env file. Open .env file from a root directory and add below line:

GOOGLE_API_TOKEN=**********************

Using Custom Config File In Laravel

We will use config helper to get value from our custom config file.

<?php

namespace App\Http\Controllers;

class HomeController extends Controller
{
    public function index()
    {
    	$googleKey = config('google.api_token');
    }
}

Here, we can also get nested values using. access modifier.

Conclusion

Here, We have just created a simple config file that contains only one value and retrieved it using the config helper in Laravel. In an actual application, there can be more than a few values or nested values as per the application's requirement.