Php 未找到但使用命名空间定义的类

Php 未找到但使用命名空间定义的类,php,Php,我有一个名为DataBaseHelper的类,它在文件DataBaseHelper.php中定义: <?php namespace Company\Project\System\DataBaseHelper; use Company\Project\System\RepoLink; use mysqli; use mysqli_result; class DataBaseHelper { /* some cool stuff */ } 调用CustomHelper->get

我有一个名为
DataBaseHelper
的类,它在文件
DataBaseHelper.php
中定义:

<?php

namespace Company\Project\System\DataBaseHelper;

use Company\Project\System\RepoLink;
use mysqli;
use mysqli_result;

class DataBaseHelper
{
    /* some cool stuff */
}
调用
CustomHelper->getDownloadCount()
会引发以下错误:

> [15-Sep-2019 07:48:09 Europe/Berlin] PHP Fatal error:  Uncaught Error: Class 'Company\Project\System\DataBaseHelper\DataBaseHelper'
> not found in
> /Applications/XAMPP/xamppfiles/htdocs/project/system/helper.php:258
> Stack trace:
>     #0 /Applications/XAMPP/xamppfiles/htdocs/project/manage/index.php(49):
> Company\Project\System\RepoHelper->getDownloadCount()
>     #1 {main}   thrown in /Applications/XAMPP/xamppfiles/htdocs/project/system/helper.php on
> line 258
名称空间是否缺少任何内容?
helper.php
中的use语句是由我的IDE(PHPStorm)自动生成的


我不使用任何框架。

PHP文件不能使用类,除非该类是:

  • 在该文件中声明;或
  • 直接或间接地在另一个PHP文件中声明
  • 长名称空间类的唯一声明别名具有较短的本地名称。它不会自动包含任何文件。事实上,对于如何在文件夹结构中放置带名称空间的类,根本没有默认定义

    要在
    new
    上自动包含或要求类文件,您需要使用或让composer为您实现注册自动加载功能

    你可以参考更多细节


    您的PhpStorm可能建议使用名称空间,假设您使用composer的方式符合标准。

    一个类对于PHP文件不可用,除非该类是:

  • 在该文件中声明;或
  • 直接或间接地在另一个PHP文件中声明
  • 长名称空间类的唯一声明别名具有较短的本地名称。它不会自动包含任何文件。事实上,对于如何在文件夹结构中放置带名称空间的类,根本没有默认定义

    要在
    new
    上自动包含或要求类文件,您需要使用或让composer为您实现注册自动加载功能

    你可以参考更多细节


    您的PhpStorm可能建议使用名称空间,假设您以符合标准的方式使用composer。

    您使用过任何框架吗?@shihab否您使用的helper.php文件
    use Company\Project\DataBaseHelper\DataBaseHelper
    不应该
    使用Company\Project\System\DataBaseHelper\DataBaseHelper@shihab是的,你是对的-这只是一个愚蠢的复制粘贴错误。我将它与
    Company\Project\System\DataBaseHelper\DataBaseHelper
    (这是IDE自动导入的内容)一起使用。如何/在何处加载带有类
    DataBaseHelper.php的文件?您是否在使用任何类型的自动加载器?您使用过任何框架吗?@shihab否在您使用的helper.php文件
    use Company\Project\DataBaseHelper\DataBaseHelper中,我没有使用任何框架(我会将此信息添加到我的问题中)
    不应该
    使用Company\Project\System\DataBaseHelper\DataBaseHelper@shihab是的,你是对的-这只是一个愚蠢的复制粘贴错误。我将它与
    Company\Project\System\DataBaseHelper\DataBaseHelper
    (这是IDE自动导入的内容)一起使用。如何/在何处加载带有类
    DataBaseHelper.php的文件?你在用自动装弹机吗?
    
    > [15-Sep-2019 07:48:09 Europe/Berlin] PHP Fatal error:  Uncaught Error: Class 'Company\Project\System\DataBaseHelper\DataBaseHelper'
    > not found in
    > /Applications/XAMPP/xamppfiles/htdocs/project/system/helper.php:258
    > Stack trace:
    >     #0 /Applications/XAMPP/xamppfiles/htdocs/project/manage/index.php(49):
    > Company\Project\System\RepoHelper->getDownloadCount()
    >     #1 {main}   thrown in /Applications/XAMPP/xamppfiles/htdocs/project/system/helper.php on
    > line 258