Sorry for the vague description, but it is a difficult bug to describe.

When the Zend framework is put in sites/all/modules/zend, Zend/Loader.php is already found and included by zend.module while the include_path hasn't been setup correctly. This is because include will also look in the current script directory to include files. Including Zend/Loader.php around line 200 will include the file regardless of the include_path setting because Zend/Loader.php exists when the Zend framework is extracted to the module directory. However, including other files through Zend_Loader will fail because in those cases the executing script is Zend/Loader.php and for instance Zend/Exception.php can't be found.

I changed zend.module such that zend_include() and zend_require() will check for $_ZEND_INCLUDE_PATH_SET before including. This leads to another bug: zend_set_include_path() and zend_restore_include_path() should have global $_ZEND_INCLUDE_PATH_SET in the function body.

I hope the problem and solution are clear. The problem with the solution is that putting the Zend framework in a directory in your current include path doesn't work anymore. To cope with this, some code should be written that checks each include_path part for the Zend Framework.

Comments

robloach’s picture

Status: Needs review » Fixed

http://drupal.org/cvs?commit=118401

This might help the situation.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.