PHP Cookie类配置
我正在编写一个cookie类,但希望将默认配置保留在一个单独的文件中,该文件只返回一个数组,原因与应用程序有关。不过,我想知道将配置数组放入类中的最佳方法是什么。我喜欢第一个实现,因为它更干净,但是我想知道第二个实现是否被认为是一个糟糕的实践?我不希望类直接知道或依赖于外部文件,但不确定传递它的最佳方式PHP Cookie类配置,php,arrays,oop,cookies,Php,Arrays,Oop,Cookies,我正在编写一个cookie类,但希望将默认配置保留在一个单独的文件中,该文件只返回一个数组,原因与应用程序有关。不过,我想知道将配置数组放入类中的最佳方法是什么。我喜欢第一个实现,因为它更干净,但是我想知道第二个实现是否被认为是一个糟糕的实践?我不希望类直接知道或依赖于外部文件,但不确定传递它的最佳方式 /* config/Cookie.php */ return [ 'expire' => null, 'path' => null, 'domai
/* config/Cookie.php */
return [
'expire' => null,
'path' => null,
'domain' => null,
'secure' => false,
'htpponly' => false
]
我在考虑用以下两种方式之一构建它:
第一种方法看起来更简洁,但我不确定如何获得默认配置项
class Cookie
{
protected $name;
protected $value;
protected $expires;
protected $path;
protected $domain;
protected $secure;
protected $httponly;
public function __construct($name, $value, $expire = null, $path = null, $doamin = null, $secure = false, $httponly = false)
{
$this->name = $name;
$this->value = $value;
$this->expire = $expire
// ...
}
或者,第二种方法是将配置数组传递到构造函数中
class Cookie
{
protected $name;
protected $value;
protected $config = array(
'expire => null,
'path' => null,
'domain' => null,
'secure => false,
'httponly' => false
);
public function __construct($name, $value, array $config = null)
{
$this->name = $name;
$this->value = $value;
$this->config = array_merge($this->config, $config);
}
// ... $name and $value getters
public function getExpire()
{
return $this->config['expire'];
}
在数组中存储类属性会被认为是不好的做法吗?Laravel会这样做。除非它变得杂乱无章,否则我不这么认为。这个问题主要是基于观点的,因为它是关于你认为/想要实现它的方法的。我个人会选择第二个选项,因为我更喜欢配置数组/对象而不是许多变量。我倾向于沉溺于思考小事,这有助于获得他人的意见