首页 > 解决方案 > PHP - 如何在类方法中调用外部名称空间?

问题描述

我正在使用 AWS 的 SDK,它需要在我的代码中使用以下命名空间:

use Aws\Ses\SesClient;
use Aws\Exception\AwsException;

我想在我的类方法中调用这些命名空间,如下所示:

class EmailManager {
    public function sendEmail() {
        //new Aws\Ses\SesClient;

        use Aws\Ses\SesClient;
        use Aws\Exception\AwsException;

但是,当我调用命名空间时出现以下错误Parse error: syntax error, unexpected 'use'

这是我迄今为止尝试过的并且工作过的。但是,我希望能够在我的方法中调用它:

use Aws\Ses\SesClient;
use Aws\Exception\AwsException;

class EmailManager {

如何在我的类方法中调用这个命名空间?

谢谢

标签: phpoop

解决方案


您应该use在类之外插入,并按名称调用导入的类:SesClient而不是完整的命名空间。或者根本不放use,每次都按完整的命名空间调用。

见文档:

适用于 PHP 的 AWS 开发工具包

使用命名空间:别名/导入

use

require 'vendor/autoload.php';

use Aws\Ses\SesClient; 
use Aws\Exception\AwsException;

class EmailManager {
    public function sendEmail() {
        $SesClient = new SesClient([
            'profile' => 'default',
            'version' => '2010-12-01',
            'region' => 'us-east-2'
        ]);

没有use

class EmailManager {
    public function sendEmail() {
        $SesClient = new \Aws\Ses\SesClient([
            'profile' => 'default',
            'version' => '2010-12-01',
            'region' => 'us-east-2'
        ]);

推荐阅读