我有具有以下供应商目录结构的PHP项目:
vendor
zendframework
zendframework
library
Zend
...
...
Cache
...
...
当我将以下行放入autoload_namespaces.php时,一切都很好:
'Zend\Cache' => $vendorDir . '/zendframework/zendframework/library/',
但是这一行不起作用:
'Zend\Cache' => $vendorDir . '/zendframework/zendframework/library/Zend/Cache/',
错误是:
Fatal error: Class 'ZendCacheStorageAdapterMemcachedOptions' not found
我的代码有什么问题?如何仅从 zend 框架加载缓存模块?如果我指定整个库文件夹,为什么它会起作用?
ZF1 类对其他 ZF 类具有内部依赖关系。它期望整个框架自动加载。对于您遇到的每个未找到类的错误,您也需要手动加载该库。完成该列表将是乏味的,并非不可能。
请允许我提出一条更简单的前进道路:
Zend Framework 1.x可以与composer一起安装。
加:"要求":{"Zendframework/Zendframework1": "1.*"},
到你的作曲家.json并从命令行进行作曲家安装。这将下载 zend 框架并将库设置为自动加载以及作曲家正在管理的其他所有内容。
要让你的 zend 框架应用程序使用作曲家自动加载器,你需要编辑你的应用程序索引.php文件并包含作曲家自动加载器,如下所示:
require_once realpath(APPLICATION_PATH . '/../vendor/autoload.php');