【发布时间】:2018-10-23 07:50:22
【问题描述】:
我在 symfony 中从 yml 文件获取参数的服务有问题。现在我的服务看起来很简单。
class MyService extends Controller
{
/**
* @var string
*/
private $keys;
public function __construct($keys)
{
$this->keys = $keys;
}
public function getKeys()
{
return $this->keys;
}
}
在Controller方法中:
public function exampleAction()
{
$keys = new MyService('keys');
return var_dump($this->getParameter($keys->getKeys()));
}
但是当我尝试在服务中添加 getParameter 函数时(查看此文本下的代码)它不起作用。 服务:
class MyService extends Controller
{
/**
* @var string
*/
private $keys;
public function __construct($keys)
{
$this->keys = $keys;
}
public function getKeys()
{
return $this->getParameter($this->keys);
}
}
和控制器:
public function exampleAction()
{
$keys = new MyService('keys');
return var_dump($keys->getKeys());
}
谁能告诉我怎么了? 谢谢 :)
【问题讨论】:
-
您不应使用
new关键字创建服务,而应使用 DIC 将其连接起来。你可以在那里传递你的参数。 -
您使用的是 Symfony 框架还是仅使用几个组件?如果您使用的是框架,那么您的方法存在根本缺陷,您应该查看文档中的服务容器部分。下面的答案试图理解您发布的代码,但您几乎完全走错了轨道。