A better way to write config files in PHP
•
1 min read
How many times have you seen something like this in a config file?
$db_host = 'localhost';
$db_name = 'somedb';
$db_user = 'someuser';
$db_pass = 'somepass';
Then, of course, it gets included and the variables are referenced as globals:
include('config.php');
echo $db_host; // 'localhost'
A better way #
I'm not a fan of using global variables when they can be avoided, so here's an alternative that gives you much more flexibility with your config files.
return [
'host' => 'localhost',
'name' => 'somedb',
'user' => 'someuser',
'pass' => 'somepass'
];
Simply returning the array allows you to include it into any variable you choose, which is much nicer than cluttering the global namespace with your config.
$database = include('config.php');
echo $database['host']; // 'localhost'
Of course, you can return any data you want with this approach — even a multidimensional array.
return [
'database' => [
'host' => 'localhost',
'name' => 'somedb',
'user' => 'someuser',
'pass' => 'somepass'
],
'other-stuff' => ...
];
This is by far my favorite way to write config files in PHP.