【发布时间】:2014-01-26 00:10:00
【问题描述】:
在 Symfony2 中是否应该以任何特殊方式声明函数(例如将给定字符串转换为数组)?请记住,该函数仅用于一个类,因此依赖注入无法完成这项工作。我个人喜欢的是不直接把它作为一个额外的函数放在控制器中,而是把它放在一个类中,这样就符合关注点分离了。
编辑示例
我会有这样的东西:
<?php
// ...
public function someAction(Request $request)
{
$query = $request->query;
// Do something with this data
$data['somedata']['hello'] = $query->get('a');
$data['someohterdata']['goodbye'] = $query->get('b');
$data['c'] = $query->get('c');
$response = new JsonResponse();
$response->setData($data);
return $response;
}
而我想要完成的是这样的事情
<?php
public function someAction(Request $request)
{
$query = $request->query;
// Access something outside this class
$outsideClass = ...;
$data = $outsideClass->createDataFromQuery($query);
$response = new JsonResponse();
$response->setData($data);
}
不确定什么是最佳做法,所以在这里询问。
【问题讨论】:
-
静态方法调用whateverModel::convertStringToArray($string)?我可能仍然会注入对象......
-
你建议我怎么注射?我对 PSR-0 自动加载很陌生。
-
这可能取决于您需要做什么,以及此功能在逻辑上的位置。如果你能发布一个更具体的例子,我可以把我的 2 美分放进去:)
-
刚刚编辑了我的问题并添加了一个例子,希望你明白:)
-
听起来像是特定于控制器的东西,控制器中受保护的辅助方法怎么样?如果它不是特定于控制器的,您可能需要考虑在控制器中注入服务。
标签: php symfony symfony-2.4