Hi Alexander,

Thank you for your superb answer! It has broken my impasse.

(I've run into another problem with ... /Document/Docx.php but now I'm moving again I'll sort that. :-)

Thanks again.

Regards,
Carlton

On 19 Aug 2009, at 18:50, Alexander Veremyev wrote:

Hi Carlton,

It's a ZF-7256 related issue.

Zend_Search_Lucene is designed to be turned on using one require_once
call:
----------------------------
require_once 'Zend/Search/Lucene.php';
---------

It takes less time than common index opening/querying. Moreover in some
environments it's faster than conditional files inclusion.
Nevertheless it should be redesigned to complain ZF coding standards.

I could recommend using the following workaround before that, just add
"require_once 'Zend/Search/Lucene.php';" in the beginning of your code.
It will include all files in the right order.

If it doesn't help, that means autoloader treats already parsed
Zend/Search/Lucene/Analysis/Analyzer/Common.php file and just requested Zend/Search/Lucene/Analysis/Analyzer/Common.php as different files. That
may happen if include path was changed since last file access.

With best regards,
  Alexander Veremyev.

-----Original Message-----
From: Carlton Gibson [mailto:carlton.gib...@noumenal.co.uk]
Sent: Tuesday, August 18, 2009 10:48 PM
To: Zend Framework General
Subject: [fw-general] Autoloader/Require mystery...

Hi all, I'm wondering if anyone can help.

I'm using a RecursiveDirectoryIterator to go through the Zend
Framework files and generate clippings for my favourite text editor. I
am passing this an absolute path to the Zend Framework library.

The library is also on my include path and I have the new Autoloader
enabled. (The copy of the library I am iterating through is the same
as that on my include_path)

My script seems to be working fine. Starting at the top, all goes well
until I reach Zend/Search/Lucene/Analysis/Analyzer/Common/Text/
CaseInsensitive.php

At this point I get a Fatal Error:

Fatal error: Cannot redeclare class
Zend_Search_Lucene_Analysis_Analyzer_Common in [my set up]/library/
Zend/Search/Lucene/Analysis/Analyzer/Common.php on line 41

The _Common file is being required in Zend/Search/Lucene/Analysis/
Analyzer/Common/Text.php but it must have been included sometime
before that.

My first thought was to comment out the offending require_once
statement -- I have the Autoloader so it shouldn't be necessary.

If I do comment out the offening require I get another fatal error:

Fatal error: Class 'Zend_Search_Lucene_Analysis_Analyzer_Common' not
found in [my set up]/Zend/Search/Lucene/Analysis/Analyzer/Common/
Utf8.php

And this one doesn't make much sense because there's still an
uncommented require_once for the missing class (file) just a few lines
above.

__What's more__ the stack trace shows that immediately after the
Zend_Loader::loadClass() call (which presumably is stepping in where
the commented require_once left off) the is a require_once being
issued FROM the ../Common.php file in which the supposedly missing
class is defined.

i.e. I can't really see how it's actually missing !? It's a bit of a
mystery.

I guess that this is something PHP related but I can't think what. Any
ideas (especially good ones :-) would really be appreciated.

TIA
Carlton


Reply via email to