Symfony4 - не могу подключить сервис - PullRequest
0 голосов
/ 02 июня 2018

Это первый раз, когда я пытаюсь автоматически подключить сервис в symfony4, так как symfony4 является новым, я никогда не уверен, работает ли найденный в Интернете ответ, или он устарел ..

В моем services.yaml:

services:

   [...]

    smugmug_controller:
        class: App\Controller\SmugmugController
        arguments:
            - '@smugmug_service'

    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones
    smugmug_service:
        class: App\Services\SmugmugService
        arguments:
            $consumerKey: "%smugmug.consumer_key%"
            $consumerSecret: "%smugmug.consumer_secret%"
            $oauthToken: "%smugmug.oauth_token%"
            $oauthTokenSecret: "%smugmug.oauth_token_secret%"
            $allowedRootId: "%smugmug.allowed_root_id%"

В моей службе Smugmug:

class SmugmugService 
{
    private $consumerKey;
    private $consumerSecret;
    private $oauthToken;
    private $oauthTokenSecret;
    private $allowedRootId;
    private $galleryNameFromDropbox = "dropbox";

    /**
     * Constructor.
     *
     * @param string $consumerKey
     * @param string $consumerSecret
     * @param string $oauthToken
     * @param string $oauthTokenSecret
     * @param string $allowedRootId
     */
    public function __construct(String $consumerKey, String $consumerSecret, String $oauthToken, String $oauthTokenSecret, String $allowedRootId) {
        $this->consumerKey = $consumerKey;
        $this->consumerSecret = $consumerSecret;
        $this->oauthToken = $oauthToken;
        $this->oauthTokenSecret = $oauthTokenSecret;
        $this->allowedRootId = $allowedRootId;
    }

В моем контроллере:

class SmugmugController extends Controller {

    private $smugmugService;

    public function __construct(SmugmugService $smugmugService) {
        $this->smugmugService = $smugmugService;
    }

И когда я пытаюсь вызвать маршрут из моего контроллера, у меня естьэта ошибка:

Невозможно автоматически подключить службу "App \ Services \ SmugmugService": аргумент "$ consumerKey" метода "__construct ()" является подсказкой типа "строка", вы должны явно указать его значение.

Я знаю, что я вызываю контроллер с внедренным сервисом, которому самому вводятся параметры (это проблема?).Любая помощь?

1 Ответ

0 голосов
/ 21 июня 2018

@ Cerad answer:

Вы хотите прекратить использование идентификаторов служб, таких как smugmug_controller.Вместо этого используйте полное имя класса.Фактически, если вы замените идентификатор на имя класса, вы можете удалить атрибут класса.И всякий раз, когда вы смотрите на пример, всегда убедитесь, что это для S4 с AutoWire.Это все в документах.

...