安装 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
,似乎存在一个普遍的误解。虽然它确实将 已经加载 类从其原始类导入到当前命名空间中,但您可以通过其所谓的非限定名而不是限定名来引用它(Factory
与 Kreait\Firebase\Factory
,在您的情况下),它实际上并没有从其物理位置导入类(即,它不处理文件系统) - 这就是自动加载器的用途:
对于您收到的错误消息,请参阅:
https://***.com/a/59266972/3323348【讨论】:
以上是关于安装 PHP 包后未定义类型的主要内容,如果未能解决你的问题,请参考以下文章
错误 CS0012:“ConnectionStringSettings”类型是在升级到 Visual Studio 2015 后未引用的程序集中定义的
Paperclip安装后未定义的方法has_attached_file?