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")
我尝试使用命名空间将实用程序 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")