AWS S3 PHP致命错误:未找到“CFCredentials”类。

3

所以,我认为我在这里做的一切都是正确的...

我下载了最新的AWS PHP SDK,然后将config-sample.inc.php复制到config.inc.php并填写密钥等信息。

在我的应用程序中,我使用require_once("../AWS/sdk.class.php"),但是出现了错误:

"PHP致命错误:在/Applications/MAMP/htdocs/AWS/config.inc.php的第50行找不到'CFCredentials'类"


我通过了sdk_compatibility_test.php测试,因此有人可以帮助我找出问题所在吗?

我弄不清楚sdk.class.php如何访问CFCredentials类,因为它从未包含/需要"utilities/utilities.class.php",但我想亚马逊的开发人员已经将其链接起来了。 我想我只是漏掉了什么。

谢谢!


怎么样只包含文件呢?这样你就可以解决真正的问题了。 - zerkms
如果您包含其他缺失的文件会怎样? - zerkms
如果我继续要求文件来解决新类问题,我会遇到以下错误:PHP致命错误:在/Applications/MAMP/htdocs/AWS/services/s3.class.php的第59行找不到CFRuntime类这很有趣,因为CFRuntime类在sdk.class.php中声明,而我一开始就是从那个文件中要求的 :( - JP.
我也遇到了同样的问题 - 我对于PEAR如何导入这些类的一些基本假设是不起作用的。 - argentage
2个回答

2

我认为我在使用Composer时遇到了版本问题,但我认为这是解决一般问题的好方法。 - argentage
如果你的Composer版本比较旧,可以尝试进行自我更新:http://getcomposer.org/doc/03-cli.md#self-update - hakre

1
我遇到的问题是另一个框架(在这种情况下是Yii)有一个自动加载器,拒绝允许AWS类加载器加载。 如果您像我一样在运行5.2的MAMP中,则无法在您拥有的任何框架之前更改AWS类加载器以自动加载。以下可怕的代码解决了我的问题:
spl_autoload_unregister(array('YiiBase', 'autoload'));
require_once('...AWSSDKforPHP/sdk.class.php');
spl_autoload_register(array('YiiBase', 'autoload'));

你需要将AWSSDK路径更改为正确指向sdk类的路径——在我的情况下,我只是使用了绝对路径。
通常情况下,可以通过使用spl_autoload_unregister参数将自动加载器置于自动加载器队列之前来替换此操作,但在php 5.2中无法使用此方法。

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