In a themed error message...

Warning: include_once(AuthSub.php) [function.include-once]: failed to open stream: No such file or directory in Zend_Loader::loadFile() (line 146 of C:\xampp\php\PEAR\Zend\Loader.php).
Warning: include_once() [function.include]: Failed opening 'AuthSub.php' for inclusion (include_path='C:\xampp\htdocs\commons73dev\sites\all\modules\Droogle\Zend\Gdata;C:\xampp\htdocs\commons73dev\sites\all\modules\Droogle;.;\xampp\php\PEAR') in Zend_Loader::loadFile() (line 146 of C:\xampp\php\PEAR\Zend\Loader.php).
Zend_Exception: File "AuthSub.php" does not exist or class "Zend_Gdata_AuthSub" was not found in the file in Zend_Loader::loadClass() (line 99 of C:\xampp\php\PEAR\Zend\Loader.php).

Droogle is loaded on a dev server that has it's own older Zend install (pre-Google, gdata) that seems to be the source location for any include calls made by the module. I tried a few tests where the calls were 'drupalized', but that just lead to further errors.

The following calls on line# 15 in appsapis.inc leads to a fatal error in a WSOD...

include_once('Zend/Loader.php');
include_once 'Zend/Loader.php';
include_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'droogle') . '/Zend/Loader.php';

as:
Fatal error: Class 'Zend_Loader' not found in C:\xampp\htdocs\commons73dev\sites\all\modules\Droogle\appsapis.inc on line 19

As I'm writing this I also noticed the change to uppercase for 'Droogle'. At any rate, I assume the local include path is the major issue, and I wonder if there will be similar problems with previously installed php-included (and/or mismatched) Zend files.

Comments

Barnettech’s picture

Status: Active » Needs review

If I'm following you correctly you didn't download the files as per the readme instructions and the files are missing so the include does fail.

HumanTex’s picture

I installed both Zend Guard (which includes the loader.php as well) and ionCube last year for other projects, so they were already configured and available as environmental directory variables on my Win box (as the reported "C:\xampp\php\PEAR\Zend\..." line).

As for Droogle, I downloaded both the module and the separate gdata package - plus - the git version where they're combined. I tried both ways of installing in case there was a version mismatch, as was implied in the readme. I was trying to force the module's files into use instead of the Guard's files once I saw the incorrect reference to the loader.php location.

So... my try at a quick fix by using a 'drupalised' include bypassed PHP's own "require_once" call (i.e., line#14, not #15) and seems to ignore my previously installed Zend loaders and keeps the inclusion to the expected, internal files... but any further calls from the module will continue to fail with other errors.

I doubt that I'm in the minority for having Zend previously installed - on a dev OR production machine - and my guess is that wherever that occurs (via a Zend Guard or a full Zend server install), that same environmental/symlinked loader.php file will most likely take precedence, and bork the module's ability to work as expected because of potentially mismatched versions being referenced inside those installs. I also doubt that previous installs of Zend stuff will be removed for the sake of getting Droogle to work as expected.