在 Symfony 中使用库
Using a library in Symfony
我正在尝试将 Mandrill API 与 Symfony 框架一起使用。我使用 composer (composer require mandrill/mandrill
) 安装了 API。这会将库放在 /vendor
目录中,但我在实际使用 Mandrill
class 时遇到了问题。
<?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
}
}
我得到的错误如下:"Attempted to load class "Mandrill" from namespace "App\Services"。
您是否忘记了另一个命名空间的 "use" 语句?"
显然,它试图从服务命名空间加载 Mandrill class。但是我需要那个命名空间来加载 Utilities
服务。
我尝试添加行 use Mandrill\Mandrill
- 以从 vendor 的 mandrill 目录中加载那个 mandrill class,但这会引发相同的命名空间错误,但对于 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 中包含此 class 的方式,但我无法将其包含在 symfony/php 7.x 中
如果你想从根命名空间访问一个类名,你需要在它前面加上一个反斜杠:
new \Mandrill(...)
参考文献:
我正在尝试将 Mandrill API 与 Symfony 框架一起使用。我使用 composer (composer require mandrill/mandrill
) 安装了 API。这会将库放在 /vendor
目录中,但我在实际使用 Mandrill
class 时遇到了问题。
<?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
}
}
我得到的错误如下:"Attempted to load class "Mandrill" from namespace "App\Services"。 您是否忘记了另一个命名空间的 "use" 语句?"
显然,它试图从服务命名空间加载 Mandrill class。但是我需要那个命名空间来加载 Utilities
服务。
我尝试添加行 use Mandrill\Mandrill
- 以从 vendor 的 mandrill 目录中加载那个 mandrill class,但这会引发相同的命名空间错误,但对于 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 中包含此 class 的方式,但我无法将其包含在 symfony/php 7.x 中
如果你想从根命名空间访问一个类名,你需要在它前面加上一个反斜杠:
new \Mandrill(...)
参考文献: