Here is what I have. I hope it's enough. Because PE and EE versions can be related to CE versions I think you can figure out the missing values.
CE 1.0.19870.4 - ZF 1.5.1
CE 1.1.6 - ZF 1.5.1
CE 1.2.0.1 - ZF 1.7.2
CE 1.3.2.1 - ZF 1.7.2
CE 1.4.0.1 - ZF 1.9.6
CE 1.4.2.0 - ZF 1.10.8
CE 1.5 - CE 1.8 - ZF 1.11.1
CE 1.9 - ZF 1.12.3
CE 1.9.1.2 - ZF 1.12.10
PE 1.10 - ZF 1.11.1
PE 1.11 - ZF 1.11.1
EE 1.9.1.1 - ZF 1.10.8
EE 1.10 - 1.13 - ZF 1.11.1
EE 1.14 - ZF 1.12.3
[EDIT]
To get the ZF version of your Magento instance look in the file lib/Zend/Version.php
.
The class constant VERSION
is what you are looking for.
Magento's autoload should convert the class
Zend_Cache
into an include path of
Zend/Cache.php
and then look for that class in the following folders.
app/code/local/Zend/Cache.php
app/code/community/Zend/Cache.php
app/code/core/Zend/Cache.php
lib/Zend/Cache.php
In a standard install, it loads from lib/Zend/Cache.php
. So, the first thing I'd do is make sure the lib/Zend/Cache.php
is there, and there is not a file at the other locations. If there is a file at the other location(s), take a look inside and make sure a class named Zend_Cache
is actually defined.
If the file's there, then it sounds like it's not being loaded correctly. The next debugging step I'd take is pinpointing the place in app/code/core/Mage/Core/Model/Cache.php
where Magento's trying to use Zend_Cache
, and make sure the PHP include paths have been setup correctly. Use some var_dump
debugging like this.
#File: app/code/core/Mage/Core/Model/Cache.php
var_dump(explode(':',get_include_path()));
exit;
$this->_frontend = Zend_Cache::factory('Varien_Cache_Core', $backend['type'], $frontend, $backend['options'],
true, true, true
);
You should see output that looks something like this
array (size=6)
0 => string '/path/to/magento/app/code/local' (length=61)
1 => string '/path/to/magento/app/code/community' (length=65)
2 => string '/path/to/magento/app/code/core' (length=60)
3 => string '/path/to/magento/lib' (length=50)
4 => string '.' (length=1)
5 => string '/usr/local/php5/lib/php' (length=23)
If lib
and the code pools (core
, community
, local
) aren't in there, it meant you may be dealing with a modified app/Mage.php
file, or you may be running in Magento compiled mode without having compiled classes (doubtful in your case since the error comes from app/code/core...
, but you never know)
Finally, if the paths were setup correctly, I'd look at the autoloader and add some debugging.
#File: lib/Varien/Autoload.php
var_dump($class);
var_dump($classFile);
return include $classFile;
Look for the path the autoloader tries to create for Zend_Cache
, and then figure out why it can't load the class.
Hope that helps!
Best Answer
Just to repeat the important parts above, Magento 2 applications should use the official Magento 2 APIs, not Zend directly. Thus developers should not care which we build upon.
For inquiring minds, Magento 2 uses bits out of different frameworks. We use the database access out of Zend 1. We investigated moving to Doctrine, but it was too much work for the Magento 2.0.0 release. We may however do it in 2.1, 2.2, 3.0, or... (no commitment yet). When we do get to it, we may also change our mind whether to use ZF1, ZF2, Doctrine etc based on new information available. Magento 2 might also have a YML file in it (meaning we use part of Symfony). A part of the installer used some of ZF2 (should we develop a new app on ZF1?), but this may change. We also saw a tiny part of Angular that possibly looked interesting for MV* in JavaScript.
But as soon as you are looking what is under the Magento framework, you are probably doing the wrong thing. Your application code should not care. You should be using the "official" APIs provided by Magento framework so we can change the internals without affecting existing customer sites or extensions. By "official", we are going to document which APIs are "supported" APIs (not done very well yet) - to make upgrades more reliable, we are going to keep these APIs as stable as possible, but make changes to the underlying code base to improve performance etc.
Note: I don't look in this area very often - Magento 2 questions are watched on the GitHub issue tracker. We are trying to keep them all there at present.