PhpStorm 未检测到 php 库命名空间
PhpStorm not detecting php library namespace
我目前使用 PhpStorm IDE。
我唯一的问题是找不到我的 php-library。
我已经安装了这个:PHP-JS。
通过安装,我的意思是生成了我通过 php5enmod php-js
.
加载的 php-js.so
文件
图书馆作品:
// This is a valid namespace AND classname
$context = new JS\Context;
$result = $context->evaluate("var x = 3; var y = 4; var z = x + y; ++z;");
// will output 8
由于某些(好吧,并不奇怪)原因,PhpStorm 无法找到 JS
命名空间,因此找不到来自该命名空间的 classes。
有什么方法可以告诉 PhpStorm 我实际上是在从有效命名空间的有效 class 调用现有方法?
我尝试使用 docBlock 标签使其工作,但 none 似乎符合我的需要。
PhpStorm 无法读取您的二进制 .so
文件(Windows 上的 .dll
)并从那里提取 PHP 接口(并通过 "PHP interface" 我的意思是 classes/functions/constants/etc 该扩展在运行时提供)。
因此,您需要像所有其他二进制 php 扩展一样执行相同的操作(例如 Phalcon's DevTools)——制作存根文件。
存根文件是您的 classes/methods/functions/etc 的有限 PHP 版本,具有(可选)完整文档但主体为空。您可以在任何标准 PHP class(例如 MySQL
)上 Ctrl + 单击 并亲眼看看它在 PhpStorm 中是如何完成的(IDE将在另一个编辑器选项卡中打开相应的存根文件).. 或者直接浏览他们的存根存储库(感谢@DanFromGermany 的 link -- https://github.com/JetBrains/phpstorm-stubs)。
此类存根文件的一个示例是(它涵盖了您示例中的代码):
<?php
namespace JS;
class Context
{
/**
* Evaluate your JS code
*
* @param string $param JS code to evaluate
* @return mixed
*/
public function evaluate($param) {}
}
只需将此类存根文件放在项目中的某处(或引用任何其他受支持的方式——例如通过 PHP | Include paths
)——此代码仅适用于 IDE。
任何可以解析源 .php
文件并在代码完成中从那里提供 classes/functions 的 IDE/editor 都可以使用此类存根文件。因此,PHP-JS 的 ask developers 自动提供此类存根是完全合理的(就像 Phalcon 开发人员所做的那样)。
我目前使用 PhpStorm IDE。
我唯一的问题是找不到我的 php-library。
我已经安装了这个:PHP-JS。
通过安装,我的意思是生成了我通过 php5enmod php-js
.
php-js.so
文件
图书馆作品:
// This is a valid namespace AND classname
$context = new JS\Context;
$result = $context->evaluate("var x = 3; var y = 4; var z = x + y; ++z;");
// will output 8
由于某些(好吧,并不奇怪)原因,PhpStorm 无法找到 JS
命名空间,因此找不到来自该命名空间的 classes。
有什么方法可以告诉 PhpStorm 我实际上是在从有效命名空间的有效 class 调用现有方法?
我尝试使用 docBlock 标签使其工作,但 none 似乎符合我的需要。
PhpStorm 无法读取您的二进制 .so
文件(Windows 上的 .dll
)并从那里提取 PHP 接口(并通过 "PHP interface" 我的意思是 classes/functions/constants/etc 该扩展在运行时提供)。
因此,您需要像所有其他二进制 php 扩展一样执行相同的操作(例如 Phalcon's DevTools)——制作存根文件。
存根文件是您的 classes/methods/functions/etc 的有限 PHP 版本,具有(可选)完整文档但主体为空。您可以在任何标准 PHP class(例如 MySQL
)上 Ctrl + 单击 并亲眼看看它在 PhpStorm 中是如何完成的(IDE将在另一个编辑器选项卡中打开相应的存根文件).. 或者直接浏览他们的存根存储库(感谢@DanFromGermany 的 link -- https://github.com/JetBrains/phpstorm-stubs)。
此类存根文件的一个示例是(它涵盖了您示例中的代码):
<?php
namespace JS;
class Context
{
/**
* Evaluate your JS code
*
* @param string $param JS code to evaluate
* @return mixed
*/
public function evaluate($param) {}
}
只需将此类存根文件放在项目中的某处(或引用任何其他受支持的方式——例如通过 PHP | Include paths
)——此代码仅适用于 IDE。
任何可以解析源 .php
文件并在代码完成中从那里提供 classes/functions 的 IDE/editor 都可以使用此类存根文件。因此,PHP-JS 的 ask developers 自动提供此类存根是完全合理的(就像 Phalcon 开发人员所做的那样)。