PHP 类 未找到名称空间

PHP classes in namespaces not found

我尝试使用命名空间将实用程序 class 加载到我的主程序 class 但每次我尝试 运行 它似乎无法正常工作,因为找不到 class。我得到的错误是:

Array
(
    [0] => C:\xampp\htdocs\ProjectPapa\assets\php\Classes\Verification.php
    [1] => C:\xampp\htdocs\ProjectPapa\assets\php\autoload.php
)
PHP Fatal error:  Uncaught Error: Class "Verification\VerificationUtility" not found in C:\xampp\htdocs\ProjectPapa\assets\php\Classes\Verification.php:7
Stack trace:
#0 {main}
  thrown in C:\xampp\htdocs\ProjectPapa\assets\php\Classes\Verification.php on line 7

Fatal error: Uncaught Error: Class "Verification\VerificationUtility" not found in C:\xampp\htdocs\ProjectPapa\assets\php\Classes\Verification.php:7
Stack trace:
#0 {main}
  thrown in C:\xampp\htdocs\ProjectPapa\assets\php\Classes\Verification.php on line 7

第一个数组让我使用 get_included_file() 函数检查包含哪些文件,我已经加载了我的 autoload.php 文件,该文件加载了我的实用程序 classes 的其余部分。这是我抛出上述错误的代码:

<?php
namespace Verification;

include dirname(__DIR__) . "\autoload.php";
use Verification\VerificationUtility as utility;

echo (new utility())->test();
print_r(get_included_files());

和我的 autoload.php 文件:

<?php
foreach (glob("Classes/*Utility.php") as $filename)
{
    include_once $filename;
}

print_r(get_included_files());

我尝试在线搜索但找不到解决方案。我试过了 php namespace Class not found or PHP namespace confusion, class not found

我进行了更改并仔细检查了我的代码,我包括了 autoload.php 中的实用程序 class,因为这是 autoload.php

的输出
$ php autoload.php
Array
(
    [0] => C:\xampp\htdocs\ProjectPapa\assets\php\autoload.php
    [1] => C:\xampp\htdocs\ProjectPapa\assets\php\Classes\VerificationUtility.php
)

我的自动加载有什么问题吗?提前感谢您的帮助。

编辑: 我试图仅在没有自动加载的情况下包含该文件,并且它工作得很好。但是我想使用自动加载器,因为如果我的 classes 开始扩展,包含每个文件会很痛苦。

看起来glob中的模式是相对于工作目录的,您可以使用确定的路径。

glob(dirname(__DIR__) . "/Classes/*Utility.php")