【问题标题】:Amazon SDK in Yii frameworkYii 框架中的 Amazon SDK
【发布时间】:2014-01-24 15:09:15
【问题描述】:

尝试获取新的 Amazon SDK http://docs.aws.amazon.com/aws-sdk-php/guide/latest/quick-start.html 在 Yii 框架中。

亚马逊文档说要这样使用:

// Include the SDK using the Composer autoloader
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// Instantiate the S3 client with your AWS credentials
$s3Client = S3Client::factory(array(
    'key'    => 'YOUR_AWS_ACCESS_KEY_ID',
    'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
));

但是在 Yii 中你不能在控制器的方法中使用“use”,所以在 Yii 中你可以使用 setPathOfAlias 来使用命名空间。

我正在尝试这个:

            Yii::import('application.vendors.amazon-sdk.*');
            Yii::setPathOfAlias('AwsSDK',Yii::getPathOfAlias('application.vendors.amazon-sdk.*'));
            require 'aws-autoloader.php';

            // Instantiate the S3 client with your AWS credentials
            $aws = AwsSDK\Aws\Common\Aws::factory(array(
                'key'    => '************',
                'secret' => '************',
            ));

它正在正确加载“Aws.php”,但显示“致命错误:找不到类 'AwsSDK\Aws\Common\Aws'”

有什么问题?

谢谢

【问题讨论】:

    标签: yii namespaces amazon


    【解决方案1】:

    这是 Yii 1.* 的吗?

    在这种情况下,只需检查我的配置方式: https://github.com/IvoRe/ES32

    "但是你不能在 Yii 中控制器的方法中使用 "use""

    你不应该在类的顶部使用“使用”吗?所以 use 声明会在 Controller 声明之前。

    引用this tutorial

    别名或导入应该发生在命名空间的最高范围内 或在全球范围内。尝试在方法范围内执行此操作或 函数的语法无效。

    【讨论】:

    • 我不想把“use”放在文件的开头,我需要把方法放在里面。
    • 我不相信这是可能的。 Use 必须始终出现在类定义之前。这是对解析器的指令。
    猜你喜欢
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多