繁体   English   中英

Symfony服务

[英]Symfony services

请帮助我了解如何在我的服务中注入buzz http包以从我的服务发送请求。

我的services.yml

parameters:
    app_bundle.webUrl: https://url.com/
    app_bundle.Url: https://test.com
    app_bundle.token: rerwe9888rewrjjewrwj

services:
    app_bundle.send_message:
        class: AppBundle\Utils\SendMessage
        arguments: ["%app_bundle.webUrl%, %app_bundle.Url%, %app_bundle.token%, @buzz"]

我的AppBundle \\ Utils \\ SendMessage

<?php

namespace AppBundle\Utils;

class SendMessage
{
    /**
     * SendMessage constructor.
     *
     * @param $webUrl
     * @param $Url
     * @param $token
     * @param Browser $buzz
     */
    public function __construct($webUrl, $Url, $token, Browser $buzz)
    {
        $this->webUrl = $webUrl;
        $this->Url = $Url;
        $this->token = $token;
        $this->buzz = $buzz;
    }

    /**
     * @param $action
     * @param null $data
     * @return mixed
     */
    private function sendRequest($action, $data = NULL)
    {
        $headers = array(
            'Content-Type' => 'application/json',
        );

        $response = $this->buzz->post($this->Url . $this->token . '/' . $action, $headers, json_encode($data));

        return $response;
    }
}

但这导致了错误:

request.CRITICAL:未捕获的PHP异常Symfony \\ Component \\ Debug \\ Exception \\ FatalThrowableError:“类型错误:传递给AppBundle \\ Utils \\ SendMessage :: __ construct()的参数4必须是Buzz \\ Browser的实例,没有给定,在/中调用第270行的app / var / cache / prod / appProdProjectContainer.php“/app/src/AppBundle/Utils/SendMessage.php第21行{”exception“:”[object]

服务配置文件中定义的每个参数必须用双引号括起来并用逗号分隔,如上例所示:

parameters:
    app_bundle.webUrl: https://url.com/
    app_bundle.Url: https://test.com
    app_bundle.token: rerwe9888rewrjjewrwj

services:
    app_bundle.send_message:
        class: AppBundle\Utils\SendMessage
        arguments: ["%app_bundle.webUrl%", "%app_bundle.Url%", "%app_bundle.token%", "@buzz"]

您只为构造函数提供了一个字符串参数: "%app_bundle.webUrl%, %app_bundle.Url%, %app_bundle.token%, @buzz"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM