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