安装 PHP 包后未定义类型

Posted

技术标签:

【中文标题】安装 PHP 包后未定义类型【英文标题】:Undefined Type after installing Php Package 【发布时间】:2021-07-15 12:41:35 【问题描述】:

我对 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 中未定义类型 'Kreait\Firebase\Factory'.intelephense(1009)

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

【问题讨论】:

请分享更多详细信息 - 您从哪里“得到”这些信息? 【参考方案1】:

您似乎忘记包含 Composer 的 autoloading mechanism:


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,似乎存在一个普遍的误解。虽然它确实将 已经加载 类从其原始类导入到当前命名空间中,但您可以通过其所谓的非限定名而不是限定名来引用它(FactoryKreait\Firebase\Factory,在您的情况下),它实际上并没有从其物理位置导入类(即,它不处理文件系统) - 这就是自动加载器的用途:

https://www.php.net/manual/en/language.namespaces.importing.php https://www.php.net/manual/en/language.oop5.autoload.php https://***.com/a/66921037/3323348

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

https://***.com/a/59266972/3323348

【讨论】:

以上是关于安装 PHP 包后未定义类型的主要内容,如果未能解决你的问题,请参考以下文章

访问后未定义的变量/空属性错误

在 Windows 10 上安装裸流星后未定义集合

错误 CS0012:“ConnectionStringSettings”类型是在升级到 Visual Studio 2015 后未引用的程序集中定义的

Paperclip安装后未定义的方法has_attached_file?

将 OSX 更新为“El Capitan”后未定义的函数 mcrypt

输出后未编写 PHP 会话(外部 ajax 调用上的 echo 或 print_r)