我有一个负责处理所有配置的类 - 从文件中读取配置,并获取在 index.php 中设置的基本配置变量(+ 从那里设置它们)。
因此,我决定在这里使用多态性——我将 Config 类抽象化,并用 FILE 和 VARIABLE 类对其进行了扩展。
如果具有这两个职责的基类长 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];
}
}