Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00%
0 / 1
0.00%
0 / 1
CRAP
62.50%
5 / 8
JsonConfigReader
0.00%
0 / 1
0.00%
0 / 1
3.47
62.50%
5 / 8
 getConfigData($location)
0.00%
0 / 1
3.47
62.50%
5 / 8
<?php
namespace Environaut\Config\Reader;
use Environaut\Config\Reader\IConfigReader;
/**
 * Reads a configuration from a JSON file that is
 * decoded into an associative config data array.
 */
class JsonConfigReader implements IConfigReader
{
    /**
     * Reads the config from the given location and
     * returns the data as an associative array.
     *
     * @param mixed $location location to read config data from (usually file/directory path)
     *
     * @return array config data as associative array
     *
     * @throws \InvalidArgumentException in case of problems handling the given location
     */
    public function getConfigData($location)
    {
        if (is_dir($location)) {
            $location = $location . DIRECTORY_SEPARATOR . 'environaut.json';
        }
        if (!is_readable($location)) {
            throw new \InvalidArgumentException("Configuration file not readable: $location");
        }
        $content = file_get_contents($location);
        $config = json_decode($content, true);
        return $config;
    }
}