Symfony - 使用参数创建服务对象

时间:2015-12-06 12:44:26

标签: api symfony service dependencies inject

我在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();

    }

}

有人知道如何解决这个问题吗?

谢谢和问候!

1 个答案:

答案 0 :(得分:2)

基本上你没有。容器支持注入依赖项。做你提出的建议会破坏使用依赖注入容器的目的。

一种解决方法是向对象添加init方法。

$custom_service = $this->get('custom_service')->init($additional_arguments);