在我的应用程序中,我有一个Config
对象,我的服务层和视图具有类属性。任何时候我想要配置值我必须做
$configValue = $this->config->setting('setting.name');
每次我想要设置时我想要做的是
$configValue = $this->config('setting.name');
为了实现这一点,我现在将此代码放在我的AbstractService
和AbstractView
中
protected function config($setting) {
return $this->config->setting($setting);
}
这只是一点点的代码重复,但我仍然不愿意,所以在这里使用特征是正确的选择吗?
答案 0 :(得分:3)
也许你正在寻找神奇的__invoke
功能(需要5.3+,但是因为你使用了特性我假设你有这个):
<?php
class Config {
private $config = array(
'ip' => '127.0.0.1',
'port' => 12345
);
public function setting($option) {
if (!empty($this->config[$option])) {
return $this->config[$option];
}
return false;
}
public function __invoke($option) {
return $this->setting($option);
}
}
$config = new Config();
var_dump($config('ip')); //127.0.0.1
?>