我的一个php应用程序确实有问题。首先,我的测试环境运行在安装了PHP的IIS上。在这里,我有以下代码:
<?php
// define autoloader for all php classes
$ps = PATH_SEPARATOR; // add default path seperator to a variable
set_include_path(get_include_path().$ps."classes/adapter/".$ps."classes/common/".$ps."classes/manager/".$ps."classes/mapper/".$ps."classes/object/".$ps."classes/viewobject/"); // add classes directory to include paths
spl_autoload_extensions(".class.php"); // add .class.php as extension for autoloading classes
spl_autoload_register(); //start the autoloading procedure
?>到目前为止还不错,因为这是它应该做的。现在,我想将该页面移到我的提供者,它使用Apache和PHP,我看到的是下面的错误消息:
Fatal error: spl_autoload() [<a href='function.spl-autoload'>function.spl-autoload</a>]: Class pageLoader could not be loaded 你们知道我做错了什么吗?
非常感谢你的帮助。
发布于 2013-12-24 14:04:22
看来我发现了问题..。我知道linux是区分大小写的,但是由于任何原因,类的文件名必须是小写的。
在我的例子中,如果你打个电话
$test = new pageLoader();目录中的文件需要名为"pageloader.class.php“。
干杯
发布于 2013-12-24 09:03:21
您忘记定义加载程序函数了吗?
// Autoloader for Classes
spl_autoload_register(null, false); // Nullify any existing autoloads
spl_autoload_extensions('.php, .class.php'); // Specify extensions that may be loaded
function class_loader($class) // Class loader
{
$filename = strtolower($class) .'.class.php';
$file = ROOT .'/classes/'. $filename;
if(!is_readable($file))
return false;
require_once $file;
}
spl_autoload_register('class_loader'); // Register loader function(s)
// End Autoloader注意,上面的代码假定有一个定义的常量ROOT
https://stackoverflow.com/questions/20757842
复制相似问题