[英]no Mail class require_once php
我正在尝试使用require_once来调用Mail.php,但是当我为该类创建一个新实例并开始使用它时,我收到一条消息,提示
Fatal error: Class 'Mail' not found in D:\xampp\htdocs\proj\Mailing\mymail.php on line xx
恢复的代码是这样的
<?php
require_once 'Autoload.php';
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
?>
或者也
<?php
require_once 'Mail.php';
$mail = new Mail();
?>
为什么收到该消息? 我已经将包含路径设置为“。; D:\\ xampp \\ php \\ pear”
我编辑了脚本并要求使用自动加载脚本,该脚本可以正常工作,因为它不会显示任何错误,但是我仍然收到相同的消息,例如邮件不起作用(我在上面编辑了脚本),自动加载位于与我相同的目录中主脚本是。
我制作了一个新文件,并使用完整路径对其进行了命名,然后输出为
Warning: require_once(D:\xampp\php\PEAR) [function.require-once]: failed to open stream: Permission denied in D:\xampp\htdocs\proj\Mailing\pMail.php on line 2
加载类时,如果使用自动加载 ,则不需要php文件。
例:
Class Autoload {
private $rootDirectory;
private $paths = array(
"system/core",
"system/obj",
"system/data"
);
public function __construct() {
$this->RootDirectory = dirname(getcwd()); // Whatever is your root
$this->activateAutoload("autoloadClassesFromSystemFolder");
}
private function autoloadClassesFromSystemFolder($i) {
foreach ($this->paths as $path) {
// Please keep in mind that a class name has to be unique.
if (is_file($this->RootDirectory .'/'. $path .'/'. $i . ".php")) {
include $this->RootDirectory .'/'. $path .'/'. $i . ".php";
break;
}
}
}
public function activateAutoload($functionName) {
spl_autoload_register(array($this, $functionName));
}
}
您唯一需要做的就是将其加载到php中:
require "path/to/autoload.php";
$autoload = new Autoload();
之后,您可以根据需要使用任意多个类,而不必担心类文件的包含性。
$mail = new Mail();
更多信息: http : //nl.php.net/autoload
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.