On 16 Jul 2008, at 12:36, Dermot Buckley wrote:
We get the following warning:
PHP Warning: Zend_Mail_Protocol_Abstract::require_once(Zend/Mail/
Protocol/Exception.php) [<a href='function.Zend-Mail-Protocol-
Abstract-require-once'>function.Zend-Mail-Protocol-Abstract-require-
once</a>]: failed to open stream: No such file or directory in /
Library/WebServer/Documents/CBDB/library/Zend/Mail/Protocol/
Abstract.php on line 275
followed by ...
PHP Fatal error: Zend_Mail_Protocol_Abstract::require_once() [<a
href='function.require'>function.require</a>]: Failed opening
required 'Zend/Mail/Protocol/Exception.php' (include_path='.:../
library:../application/models:../incubator/library:.:../library')
in /Library/WebServer/Documents/CBDB/library/Zend/Mail/Protocol/
Abstract.php on line 275
Just for the sake of completeness, I'll post the resolution to this
problem:
For reasons as yet unknown (to me at least), the working directory for
php changes during object destruction (at least on several of our
servers here). A side effect of this is that if you're using relative
paths in the include path, dynamic loading of php files will fail
during __destruct calls.
So the fix for me was to change the include path entries to absolute
paths. The exception is still thrown in
Zend_Mail_Protocol_Smtp::quit(), but it is caught and ignored as was
intended.
Hopefully this will be of help to someone in the future, it cost me
nearly a day to find.
Dermot.