gpt4 book ai didi

PhpStorm 不识别类别名

转载 作者:可可西里 更新时间:2023-11-01 01:15:26 26 4
gpt4 key购买 nike

我看过这个 question , 但不幸的是没有答案。

我正在使用 PhpStorm 并且正在构建一个加载了 Composer 项目的项目。我正在努力做到这一点,以便 PhpStorm 在我按住 Ctrl 并单击它们时识别我的类/函数,特别是对于通过 composer 安装的项目。

我已尝试更改 Settings/Directories 中的 Source Folders,但我仍然无法正常工作。

我正在使用需要 __DIR__ 。 '/vendor/autoload.php'; 加载我的 Composer 依赖项。

我需要做什么才能让 PhpStorm 从通过 composer 加载的文件中识别我的声明?


为了支持我的问题,这里有一些图片:

我的 test.php 文件:(注意它如何无法识别我的类):项目/test.php enter image description here

通过 composer 添加并使用 autoloader 安装的项目:project/vendor/braintree/braintree_php/lib/Braintree/Subscription.php enter image description here

我的 composer.json 文件:project/composer.json enter image description here

最佳答案

嗯...从技术上讲,该包没有定义Braintree_Subscription 类(我的意思是——“正确的”定义)。您的第二张屏幕截图显示了 \Braintree 命名空间中 Subscription 类的定义。

这是该文件:https://github.com/braintree/braintree_php/blob/master/lib/Braintree/Subscription.php

注意最后一行——在调用 class_alias() 函数时提到了“undefined”类:

class_alias('Braintree\Subscription', 'Braintree_Subscription');

看起来你的 PhpStorm 不理解这样的类定义。


这是来自 PhpStorm 的问题跟踪器的票证:WI-11936 -- 根据机票,它已于 2016 年 11 月 3 日(基本上是 2 天前)确定。修复(类别名支持)将在下一个主要版本中可用,即 2016.3

您可以等到它正式发布(大约月底)或尝试下一个 EAP 或 RC 构建(查看他们的 blog 或 Twitter 以获取公告)。


现在(对于当前和过去的稳定版本:2016.2 及更早版本)解决方案是使用“真实”类名 (\Braintree\Subscription) 而不是别名 (Braintree_Subscription) 在你的代码中。

但无论如何:在您自己的新代号中使用真正的类是最正确的方法——为需要某些遗留/兼容性支持的情况和其他边缘情况保留类别名。


附言这与 Composer 无关——完全没有关系。

这只是代码示例——无论出于何种原因(可能 遗留/兼容性原因......或者对于 PHP 新用户来说更容易,不知道)他们使用类别名而不是真正的类名并且 PhpStorm 不理解这样的别名。

关于PhpStorm 不识别类别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com