php - Zend 1 3d party NameSpaces 自动加载不起作用

标签 php zend-framework amazon-web-services namespaces autoloader

我正在尝试将 Amazon WebServices PHP SDK 实现到我的 Zend 1 项目中,但它似乎无法加载类。

我已经将库放入 library/Eplan/AmazonCloudSearch 中,经过调查似乎为了能够加载命名空间,我需要调用 registerNamespace 方法来自 Zend_Loader_Autoloader::getInstance() 所以我把它放在了自动加载器的顶部(我也试过把它放在 Bootstrap 中但运气不好):

require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace("Aws");

AWS库的命名空间是这样的:Aws\namespace

我得到的错误类似于 警告:include_once(Aws/Common/Aws.php):无法打开流:/srv/www_nfs_desarrollo/vhosts/desarrollo.techmaker.net/httpdocs 中没有这样的文件或目录/library/Zend/Loader.php 第 134 行

自动加载器完整代码:http://pastebin.com/gS9mcntK

我一整天都在努力解决这个问题,但运气不好,有什么想法吗?

最佳答案

为了使用 $autoloader->registerNamespace('Aws'),您寻找的 AWS 库必须在您的 PHP 包含路径中,它可能包含您的 ./library 目录。相反,您将 AWS 库隐藏在 ./library/Eplan/AmazonCloudSearch 中,这几乎可以肯定在您的 PHP include_path 中。

尝试将 AWS 库向上移动两层,直接进入 ./library 目录。

关于php - Zend 1 3d party NameSpaces 自动加载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30352814/

相关文章:

sql - Zend Framework Db 选择连接表帮助

php - 如何让 zend 框架在浏览器中显示 'hello world'?

amazon-web-services - 处理 for_each 中的空值并分配默认值 terraform

java - 从 S3 存储桶获取最新对象?

PHPMailer - 重复变量

javascript - 将 PHP 变量传递给 Javascript 数组

php - Zendframework Rowset 按键选择

mysql - (Amazon Linux) MySQL 在 EC2 重启时停止工作

php - 在 PHP 中从字符串创建无限深的多维数组

php - MySQL 错误号 :150 的更多详细信息