Skip to main content
Rollback to Revision 1
Source Link
Jamal
  • 35.2k
  • 13
  • 134
  • 238

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Example usage:

echo Config::get('database.host');
// Returns: localhost

Example config file:

<?php

return array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'example_database'
);

The class:

<?php

class Config {

    /**
     * All of the items from the config file that is loaded
     *
     * @var array
     */
    public static $items = array();

    /**
     * Loads the config file specified and sets $items to the array
     *
     * @param   string  $filepath
     * @return  void
     */
    public static function load($filepath)
    {
        static::$items = include('config/' . $filepath . '.php');
    }

    /**
     * Searches the $items array and returns the item
     *
     * @param   string  $item
     * @return  string
     */
    public static function get($key = null)
    {
        $input = explode('.', $key);
        $filepath = $input[0];
        unset($input[0]);
        $key = implode('.', $input);

        static::load($filepath);

        if ( ! empty($key))
        {
            return static::$items[$key];
        }
        
        return static::$items;
    }

}

I should also add that this doesn't seem to work with multidimensional arrays - I'm working on this. If anyone has a solution, I'd appreciate it.

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Example usage:

echo Config::get('database.host');
// Returns: localhost

Example config file:

<?php

return array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'example_database'
);

The class:

<?php

class Config {

    /**
     * All of the items from the config file that is loaded
     *
     * @var array
     */
    public static $items = array();

    /**
     * Loads the config file specified and sets $items to the array
     *
     * @param   string  $filepath
     * @return  void
     */
    public static function load($filepath)
    {
        static::$items = include('config/' . $filepath . '.php');
    }

    /**
     * Searches the $items array and returns the item
     *
     * @param   string  $item
     * @return  string
     */
    public static function get($key = null)
    {
        $input = explode('.', $key);
        $filepath = $input[0];
        unset($input[0]);
        $key = implode('.', $input);

        static::load($filepath);

        if ( ! empty($key))
        {
            return static::$items[$key];
        }
        
        return static::$items;
    }

}

I should also add that this doesn't seem to work with multidimensional arrays - I'm working on this. If anyone has a solution, I'd appreciate it.

deleted 1456 characters in body
Source Link
user16326
user16326

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Example usage:

echo Config::get('database.host');
// Returns: localhost

Example config file:

<?php

return array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'example_database'
);

The class:

<?php

class Config {

    /**
     * All of the items from the config file that is loaded
     *
     * @var array
     */
    public static $items = array();

    /**
     * Loads the config file specified and sets $items to the array
     *
     * @param   string  $filepath
     * @return  void
     */
    public static function load($filepath)
    {
        static::$items = include('config/' . $filepath . '.php');
    }

    /**
     * Searches the $items array and returns the item
     *
     * @param   string  $item
     * @return  string
     */
    public static function get($key = null)
    {
        $input = explode('.', $key);
        $filepath = $input[0];
        unset($input[0]);
        $key = implode('.', $input);

        static::load($filepath);

        if ( ! empty($key))
        {
            return static::$items[$key];
        }
        
        return static::$items;
    }

}

I should also add that this doesn't seem to work with multidimensional arrays - I'm working on this. If anyone has a solution, I'd appreciate it.

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Example usage:

echo Config::get('database.host');
// Returns: localhost

Example config file:

<?php

return array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'example_database'
);

The class:

<?php

class Config {

    /**
     * All of the items from the config file that is loaded
     *
     * @var array
     */
    public static $items = array();

    /**
     * Loads the config file specified and sets $items to the array
     *
     * @param   string  $filepath
     * @return  void
     */
    public static function load($filepath)
    {
        static::$items = include('config/' . $filepath . '.php');
    }

    /**
     * Searches the $items array and returns the item
     *
     * @param   string  $item
     * @return  string
     */
    public static function get($key = null)
    {
        $input = explode('.', $key);
        $filepath = $input[0];
        unset($input[0]);
        $key = implode('.', $input);

        static::load($filepath);

        if ( ! empty($key))
        {
            return static::$items[$key];
        }
        
        return static::$items;
    }

}

I should also add that this doesn't seem to work with multidimensional arrays - I'm working on this. If anyone has a solution, I'd appreciate it.

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Source Link
user16326
user16326

PHP Config Class

I'm working on a config class for PHP, where I can easily bring in config options. Any improvements/suggestions are appreciated.

Example usage:

echo Config::get('database.host');
// Returns: localhost

Example config file:

<?php

return array(
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'example_database'
);

The class:

<?php

class Config {

    /**
     * All of the items from the config file that is loaded
     *
     * @var array
     */
    public static $items = array();

    /**
     * Loads the config file specified and sets $items to the array
     *
     * @param   string  $filepath
     * @return  void
     */
    public static function load($filepath)
    {
        static::$items = include('config/' . $filepath . '.php');
    }

    /**
     * Searches the $items array and returns the item
     *
     * @param   string  $item
     * @return  string
     */
    public static function get($key = null)
    {
        $input = explode('.', $key);
        $filepath = $input[0];
        unset($input[0]);
        $key = implode('.', $input);

        static::load($filepath);

        if ( ! empty($key))
        {
            return static::$items[$key];
        }
        
        return static::$items;
    }

}

I should also add that this doesn't seem to work with multidimensional arrays - I'm working on this. If anyone has a solution, I'd appreciate it.