Fatal error: Uncaught exception 'Zend_Exception' with message 'File "Mail.php" does not exist or class "Mail" was not found in the file' in C:\xampp\htdocs\fyp\plugin\Zend\Loader.php:99
Stack trace: #0 C:\xampp\htdocs\fyp\report\bounce.php(9): Zend_Loader::loadClass('Mail') #1 {main} thrown in C:\xampp\htdocs\fyp\plugin\Zend\Loader.php on line 99
我的文件夹的结构是:
根/报告/ call.php 根/ pluign / Zend的/装载机/ Autoloader.php
Zend框架在查找文件时似乎存在一些问题。如何解决?谢谢
call.php:
<?
set_include_path($_SERVER['DOCUMENT_ROOT'].'/fyp/plugin');
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
//Zend_Loader_Autoloader::getInstance();
//set_include_path('../plugin/ZendFramework-1.11.11-minimal/library/Zend');
Zend_Loader::loadClass('Mail');
$mail = new Zend_Mail_Storage_IMAP(array('host' => 'imap.gmail.com',
'user' => 'admin@gmail.com',
'password' => 'pwd',
'ssl' => 'SSL',
'port' => 993
));
echo $mail->countMessages() . " messages found\n";
foreach ($mail as $message) {
echo "Mail from '{$message->from}': {$message->subject}\n";
}
include("../connection/conn.php");
session_start();
?>
答案 0 :(得分:1)
将Zend Framework放在php.ini include_path中。这是include_path='.;C:\xampp\php\PEAR'
指向的内容
在你的php.ini中,让你的包含路径看起来像include_path='.;C:\xampp\php\PEAR;C:\path\to\ZendFramework-1.11.11-minimal/library'
,然后你的自动加载器应该可以工作。
解决您的编辑问题:
班级名称不是“邮件”。
Zend_Loader::loadClass('Zend_Mail');
使用ZF 1.x,类名模仿文件的路径。这是在PHP具有命名空间之前完成的特殊命名空间。
所以例如Zend_Mail_Storage_IMAP
会住在/Zend/Mail/Storage/IMAP
希望这有帮助