php - 无法使用 Composer 从其他自动加载的类文件中自动加载类

标签 php namespaces composer-php autoload psr-0

我不熟悉使用 Composer 使用“PSR-0”自动加载类的方式自动加载自定义类文件。
下面是我的目录树结构。
Folder Structure
下面是我在 composer.json 文件中的 PSR-0 配置
enter image description here
在需要 vendor/autoload.php 后从我的项目文件外部请求时,类自动加载很好
问题是当试图从另一个具有定义命名空间的类中加载一个类时。
例子:
我正在尝试调用静态方法 ::GetDatabaseConfig() 来自 配置 内的类配置 文件夹放入 数据库 内的类数据库文件夹。
这是我在 Database 类中使用的代码。
数据库/Database.php

namespace App\Database;
class Database{
    public static $con;
    public static $connected = false;
    public static $error = false;
    public static $error_message = "";

    function __construct( $opt=false ){
        $config = App\Config\Config::GetDatabaseConfig();
        //REST....
    }
}
此代码不起作用并显示此错误。

Fatal error: Uncaught Error: Class "App\Database\App\Config\Config" not found in /storage/emulated/0/code/durandal/htdocs/api/idan/App/Database/Database.php:13


我看到 Database.php 文件中使用的命名空间在请求 App\Config\Config 类时用作前缀。
我在这里错过了什么?如何解决?

最佳答案

您没有使用 Config 的 FQCN类,但名称相对于 App\Database命名空间。
要解决此问题,您需要添加前缀 Config类与 \ :

\App\Config\Config::GetDatabaseConfig();
甚至更好的是,您可以导入 Configuse App\Config\Config; 一起上课然后与 Config::GetDatabaseConfig() 一起使用

关于php - 无法使用 Composer 从其他自动加载的类文件中自动加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66882409/

相关文章:

php - 如何在父类构造函数中使用命名空间

php - 从包中引用 Eloquent 模型

php - 表锁失败

php - 从上游读取响应头时如何修复上游发送的头太大?

php - laravel 返回与 eloquent 和 laravel 的关系

由于命名空间错误,R 无法加载包预测

php - foreach 不填充数组

php - Composer 自动加载不适用于 Travis CI 中的测试

php - Composer laravel 安装 : "http://packagist.org" file could not be downloaded

php - 在 ProviderRepository.php 第 208 行中找不到提供程序类