我不熟悉使用 Composer 使用“PSR-0”自动加载类的方式自动加载自定义类文件。
下面是我的目录树结构。
下面是我在 composer.json 文件中的 PSR-0 配置
在需要 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();
甚至更好的是,您可以导入 Config
与 use App\Config\Config;
一起上课然后与 Config::GetDatabaseConfig()
一起使用
关于php - 无法使用 Composer 从其他自动加载的类文件中自动加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66882409/