首页 > 解决方案 > 安装 PHP 包后未定义类型

问题描述

我对 PHP 很陌生。我正在尝试安装kreait/firebase-php库,所以我安装了作曲家,我做到了composer require kreait/firebase-php

之后,我尝试在我的一个 php 文件中导入库,如下所示

use Kreait\Firebase\Factory;
$factory = (new Factory)
    ->withServiceAccount('/path/to/firebase_credentials.json')
    ->withDatabaseUri('https://my-project-default-rtdb.firebaseio.com');

但我 在 VS Code 中不断收到Undefined type 'Kreait\Firebase\Factory'.intelephense(1009) 。

请问,接下来我该怎么办?我正在使用 php 8.0.1

标签: php

解决方案


看起来您忘记了包含 Composer 的自动加载机制


require 'path/to/vendor/autoload.php';

use Kreait\Firebase\Factory;

$factory = (new Factory)
    ->withServiceAccount('/path/to/firebase_credentials.json')
    ->withDatabaseUri('https://my-project-default-rtdb.firebaseio.com');

似乎有一个普遍的误解use。虽然它确实将已加载的类从其原始名称导入到当前命名空间中,因此您可以通过其所谓的 unqualified 而不是通过其限定名称(在您的情况下Factory为 vs. Kreait\Firebase\Factory)来引用它,但它实际上并没有导入该类从它的物理位置(即它不处理文件系统) - 这就是自动加载器的用途:

对于您收到的错误消息,请参阅:


推荐阅读