【问题标题】:AWS S3 PHP Fatal error: Class 'CFCredentials' not foundAWS S3 PHP 致命错误:未找到“CFCredentials”类
【发布时间】:2013-03-10 20:51:12
【问题描述】:

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

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

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

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


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

我无法弄清楚 sdk.class.php 是如何访问 CFCredentials 类的,因为它从不包含/需要“utilities/utilities.class.php”,但我想亚马逊的开发人员已经将它链接了一些如何。我想我只是错过了一些东西。

谢谢!

【问题讨论】:

  • 只包含文件怎么样?这样你就可以解决真正的问题
  • 如果包含其他丢失的文件怎么办?
  • 如果我一直需要文件来修复新的类问题,我会遇到这个错误:PHP 致命错误:在 /Applications/MAMP/htdocs/AWS/services/s3 中找不到类 'CFRuntime'第 59 行的 .class.php 很有趣,因为 CFRuntime 类是在 sdk.class.php 中声明的,这是我从一开始就需要的文件:(
  • 我遇到了同样的问题 - 我对 PEAR 如何导入这些类的一些基本假设不起作用。

标签: php amazon-s3 amazon-web-services


【解决方案1】:

Install AWS with Composer Package Manager for PHP,这是一个清晰的程序,通常开箱即用。

您还可以轻松安装其他基于 PHP 的软件包。

【讨论】:

  • 我认为我在使用 composer 时遇到了版本控制问题,但我认为这是解决一般问题的好方法。
  • 如果您的作曲家版本早了几天,请尝试自我更新:getcomposer.org/doc/03-cli.md#self-update
【解决方案2】:

我最终遇到的问题是另一个框架(在本例中为 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 中这是不可用的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多