[PHP]コンフィグファイルから設定情報を読み込むためのConfigクラス

Share on Facebook
Bookmark this on Delicious
LINEで送る
Pocket

PHPファイルに連想配列の形で保存しておいた設定情報を読み込むことが多かったのでスタティッククラスとして定義してみました。
Config::set_config_directory(ディレクトリパス) でコンフィグファイルのディレクトリを指定しておき、Config::get('パス.ファイル名.配列のキー') で情報を取り出せるようにしてあります。単純に Config::get('ファイル名.配列のキー') と書いても動作します。

【使用例】

<?php
require 'Config.php';
Config::set_config_directory(__DIR__ . '/config');
echo  Config::get('app.url');    // http://example.com

設定ファイル config/app.php

<?php
return [
    'url' => 'http://example.com',
    'email' => 'user@example.com',
];

Config.php

<?php
class Config
{
    protected static $directory;

    public static function set_config_directory($directory){
        self::$directory = $directory;
    }

    public static function get_config_directory(){
        return rtrim(self::$directory, '/\\');
    }

    public static function get($route){
        $values = preg_split('/\./', $route, -1, PREG_SPLIT_NO_EMPTY);
        $key = array_pop($values);
        $file = array_pop($values) . '.php';
        $path = (!empty($values)) ? implode(DIRECTORY_SEPARATOR, $values) . DIRECTORY_SEPARATOR : '';
        $baseDir = self::get_config_directory() . DIRECTORY_SEPARATOR;
        $config = include($baseDir . $path . $file);
        return $config[$key];
    }
}


Similar Posts:




  • This entry was posted in PHP and tagged . Bookmark the permalink.

    コメントを残す

    メールアドレスが公開されることはありません。