我在symfony应用程序中创建了一项新服务:
namespace AppBundle\Service;
class CustomService {
public function __construct($username, $password) {
// stuff
}
public function getItems() {
}
}
并在config.yml中配置:
services:
custom_service:
class: AppBundle\Service\CustomService
我的问题是,如何使用多个参数从此服务创建对象?
像:
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class CustomController extends Controller {
public function listAction() {
$custom_service = $this->get('custom_service'); //how to pass multiple arguments here?
// Next i would use my custom service, like:
$items = $custom_service->getItems();
}
}
有人知道如何解决这个问题吗?
谢谢和问候!
答案 0 :(得分:2)
基本上你没有。容器支持注入依赖项。做你提出的建议会破坏使用依赖注入容器的目的。
一种解决方法是向对象添加init方法。
$custom_service = $this->get('custom_service')->init($additional_arguments);