【问题标题】:How to namespace aws-sdk-php-laravel in laravel 5如何在 laravel 5 中命名 aws-sdk-php-laravel
【发布时间】:2015-08-17 01:14:18
【问题描述】:

我刚开始使用 laravel 5,对命名空间不太熟悉。所以正如标题所说,我如何在我的控制器中命名 aws-sdk-php-laravel 包?

我正在尝试使用亚马逊 sns 将通知消息推送到我的 iOS 应用程序。

我试过了

使用 Aws\Sns\SnsClient;

并得到错误:

致命错误:未定义类:App\Http\Controllers\AWS

【问题讨论】:

  • @michael,不,我没有。我打算在这里使用这个包。 github.com/aws/aws-sdk-php-laravel 我在想我在命名空间中使用了错误的路径。
  • 粘贴导致异常的行。您粘贴的“使用”语句与错误无关
  • @jedrzej.kurylo 该行是 $sns = AWS::get('sns');我添加了一个反斜杠,它现在可以工作了。谢谢
  • 很高兴知道。那正是我所想。如果没有 use 语句或完全限定的类名,PHP 会尝试从当前命名空间加载类。
  • 门面是AWS 并在全球范围内注册,所以use AWS; 应该可以工作。或者,您可以在使用 $sns = \AWS::get('sns'); 类时添加反斜杠。

标签: laravel aws-sdk


【解决方案1】:

看起来您正试图在您的一个控制器中访问 Facade。

尝试在顶部添加use 语句:

use Aws\Laravel\AwsFacade as AWS;

或者在你当前代码中的AWS前面加上一个反斜杠(\AWS)告诉PHP它应该在你当前的命名空间(App\Http\Controllers)中寻找AWS类,但在根命名空间\ .

【讨论】:

    【解决方案2】:

    config/app.php 添加

            'AWS' => Aws\Laravel\AwsFacade::class,
    

    然后在你想使用的顶部添加一条use语句:

    use AWS
    

    或者你可以使用@hannesvdvreken 风格

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 2016-10-05
      • 2017-05-30
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 2015-05-13
      相关资源
      最近更新 更多