I'm using PhpStorm as current IDE.
The only issue I have with it is that it can't find my php-library.
I've installed this: PHP-JS.
And by install, i mean generated the php-js.so
file which I've loaded via php5enmod php-js
.
The library works:
// 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
For some (well, not that strange) reason, PhpStorm can't find the JS
namespace and consequently no classes from that namespace.
Is there a way I can tell PhpStorm that I'm actually calling an existing method from a valid class from a valid namespace?
I've tried to make it work using docBlock tags but none seems to match what I need.
There is no way that PhpStorm will read your binary .so
file (.dll
on Windows) and extract PHP interfaces from there (and by "PHP interface" I mean classes/functions/constants/etc that extension offers during runtime).
Therefore you would need to do the same as all other binary php extensions would do (e.g. Phalcon's DevTools) -- make stubs files.
Stub file is a limited PHP version of your classes/methods/functions/etc with (optional) full doc but empty bodies. You can Ctrl + Click on any standard PHP class (e.g. MySQL
) and see yourself how it's done in PhpStorm (IDE will open corresponding stub file in another editor tab) .. or just browse their stub repository directly (thanks @DanFromGermany for the link -- https://github.com/JetBrains/phpstorm-stubs).
An example of such stub file would be (it covers the code from your example):
<?php
namespace JS;
class Context
{
/**
* Evaluate your JS code
*
* @param string $param JS code to evaluate
* @return mixed
*/
public function evaluate($param) {}
}
Just place such stub files somewhere in your project (or reference any other supported way -- e.g. via PHP | Include paths
) -- this code is for IDE only.
Such stub files can be used by any IDE/editor that can parse source .php
files and offer classes/functions from there in code completion. Therefore it makes perfect sense to ask developers of that PHP-JS to provide such stubs automatically (just like Phalcon devs do).
来源:https://stackoverflow.com/questions/35921540/phpstorm-not-detecting-php-library-namespace