2012-11-22 42 views
2

我想在我的Yii项目中使用Amazon AWS开发工具包PHP,但是我收到各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory)。如何在Yii中安装AWS开发工具包

我认为这可能与Yii中的假设,即类名称必须的文件名匹配...

我们能做些什么?

回答

3

我做了:

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的自动加载器然后添加它(以亚马逊第一)可能会导致亚马逊的自动加载器前 如在这篇博文中提到 http://blog.lency.me/2012/06/17/integrate -jamzon-web-service-aws-sdk-with-yii-framework/ –

+1

嗨@sergey,我会得到错误'致命错误:Class'CFCredentials'在/ home/xxx/workspace/project/protected/components中找不到第2行的/amazon/config.inc.php“,请帮助我 –

1

这美丽的工作:

// 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(); 
0

,以防有人绊倒在这个问题上,我发现,如果一个人使用药业文件直接(决定很差,我知道),并通过require_once导入,你不能叫spl_autoload_register重新添加YiiBase自动加载直到您的SDK调用完成。

至少这是我们使用StsClient调用具有IAM角色的承担角色时的情况。

相关问题