为什么我的自动加载器函数找不到特定的类



文件夹结构如下:

-classes
-controller
-ProductCtrl.php
-model
-view
-includes
-components
-autoload.inc.php
-pages
-home.php
-add-product.php
-index.php

这是我的自动加载器功能:

spl_autoload_register(function ($class) {
$str = str_replace("\", "/", $class);
$file = $str.".php";
// if the file exists, require it
if (file_exists($file)) {
require $file;
}
});

index . php

<?php
require "includes/autoload.inc.php";
//home page
include "pages/Home.php";

现在我可以访问ProductCtrlclass fromhome.php在index.php,但是每当我尝试访问中的相同类时,add-product.php文件,它给我一个错误说:

Fatal error: Uncaught Error: Class "classescontrollerProductCtrl" not found in 
project_directorypagesadd-product.php

注意:我在每个包含文件夹结构的类中都使用了命名空间。

该文件很可能不存在,因此类仍未定义。

如果你指定了一个基本路径,它会更显式,并且可能已经解决了:

$file = __DIR__ . '///..///' . $str . ".php";
trigger_error("looking for file: '$file'");

还要检查错误日志,查看显示自动加载器处理哪些文件路径的通知(通过trigger_error日志记录,您可以稍后删除它)。

相关内容

  • 没有找到相关文章

最新更新