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:
- [PHP]FTPでアップロードやダウンロード等のファイル操作を行う
- Symfony 3 のインストールと基本構成
- [PHP]basename() はマルチバイトに対応できない?
- [PHP]テキストに自動で段落分け<p>、改行<br />タグをつける(文字列のHTML化)
- [PHP]PHP7.0での変更点とアップグレード時の対応
- [PHP][JS, Ajax]郵便番号を住所に変換する
- [PHP]クラスメソッドをキャメルケース、スネークケースのどちらでも呼び出せるようにする
- [PHP]多階層ディレクトリ内のファイル一覧を取得する