如何在Yii中安装AWS SDK

4
我希望在我的Yii项目中使用Amazon AWS SDK for PHP,但是我遇到了各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory)。
我认为这可能与Yii假定类名必须与文件名匹配有关...
我们该怎么办?
4个回答

5

我已经做到了:

spl_autoload_unregister(array('YiiBase', 'autoload'));
require_once PATH_TO_AWS_SDK . 'sdk.class.php';
// I write down in PATH_TO_AWS_SDK.'config.inc.php' my CFCredentials
spl_autoload_register(array('YiiBase', 'autoload'));

$amazon_opts = array(
    'curlopts' => array(
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_FORBID_REUSE   => false,
    ),
);
$amazon = new AmazonSES();
$response = $amazon->get_send_quota($amazon_opts);

1
不必禁用Yii的自动加载器,然后添加Amazon(使其排在第一位),可以按照这篇博客文章所述,将Amazon的自动加载器置于前位。http://blog.lency.me/2012/06/17/integrate-amazon-web-service-aws-sdk-with-yii-framework/ - Muayyad Alsadi
1
嗨@sergey,我仍然遇到错误“致命错误:在/ home / xxx / workspace / project / protected / components / amazon / config.inc.php的第2行找不到'CFCredentials'类”,请帮助我。 - Soojoo

2

这个非常好用:

// Include the SDK

Yii::import('application.vendors.aws.*');
spl_autoload_unregister(array('YiiBase', 'autoload'));
require_once 'sdk.class.php';
spl_autoload_register(array('YiiBase', 'autoload'));

// Instantiate the AmazonEC2 class
$ec2 = new AmazonEC2();

1
如果有人遇到这个问题,我发现如果直接使用PHAR文件(我知道这是个糟糕的决定)并通过require_once导入,你不能在SDK调用完成之前调用spl_autoload_register重新添加YiiBase自动加载。至少在我们使用StsClient调用IAM角色进行角色假设时是这样的。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接