ファイルから構成を読み取り、index.php で設定された基本的な構成変数を取得する (+ そこから設定する) すべての構成を処理するクラスがあります。
したがって、ここでポリモーフィズムを使用することにしました。Config クラスを抽象化し、これを FILE および VARIABLE クラスで拡張しました。
これらの 2 つの責任を持つ基本クラスが 100 行の長さの場合、それは良い習慣の動作ですか?
ここで私に反対票を投じないでください-プロジェクトがすでに完了しているときに、それが柔軟なソリューションではないことを知りたくないだけです。
これがコードです (ただし、リファクタリング、テスト、およびいくつかの機能の追加はありませんが、概念は明確なはずです)。
class Config {
private $file;
public static $configs = array();
/**
* Initializes basic website configurations such as base URL, or the name
* of the index file.
*
* These values can be accessed through this class
*/
public static function init($configs = array())
{
foreach($configs as $key => $value)
{
self::$configs[$key] = $value;
}
}
/**
* Returns the configuration variable which is set in the index file
*
* @param string $attribute
* @return multitype:
*/
public function __get($attribute)
{
return ($this->configs[$attribute]) ? $this->configs[$attribute] : -1;
}
/**
* Setting path to the config file.
*
* @param string $module
*/
private function __construct($module)
{
// Path to the config file
$path = APATH . 'config' . DIRECTORY_SEPARATOR . $module . '.php';
// Set the config file to the attribute here
$this->file = include $path;
}
/**
* Return the object.
*
*/
public static function factory($module)
{
return new Config($module);
}
/**
* Loads configurations from the given file.
*
*/
public function load($property)
{
// Return requested value
return $array[$property];
}
}