Использование библиотеки в Symfony - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь использовать Mandrill API с платформой Symfony.Я установил API с помощью composer (composer require mandrill/mandrill).Это помещает библиотеку в каталог /vendor, но у меня возникают проблемы с использованием класса Mandrill в моем сервисе.

<?php

namespace App\Services;

use App\Services\Utilities;

class Email {

    public function __construct($mandrill_api_key, Utilities $u){

        $mandrill = new Mandrill($this->mandrill_api_key); // throws exception
    }
}

Я получаю следующую ошибку: «Попытка загрузить класс« Mandrill »из пространства имен« App \ Services ». Вы забыли инструкцию« use »для другого пространства имен?»

Очевидно, он пытается загрузить класс Mandrill из пространства имен Services.Но мне нужно это пространство имен для загрузки службы Utilities.

Я попытался добавить строку use Mandrill\Mandrill - чтобы загрузить этот класс mandrill из каталога mandrill вендора, но это выдает ту же ошибку пространства имен, но дляПространство имен Mandrill.

В документации API есть следующее:

<?php
    require_once 'mandrill-api-php/src/Mandrill.php'; //Not required with Composer
    $mandrill = new Mandrill('YOUR_API_KEY');
?>

require_once - это то, как я ранее включил этот класс в php 5.x, но я не смог включить его в symfony / php 7.х

1 Ответ

0 голосов
/ 28 ноября 2018

Если вы хотите получить доступ к имени класса из корневого пространства имен, вам необходимо добавить к нему обратную косую черту:

new \Mandrill(...)

Ссылки:

...