В последнее время я заметил, что автозавершение кода в PhpStorm менее эффективно, и я не уверен, что мои настройки перепутались или я просто что-то упускаю.
Вот пример того, что я пытаюсь сделать:
class Database {
public function doStuff() {}
}
class DatabaseTest {
private $conn;
/**
* DatabaseTest constructor.
* @param $dbc
*/
public function __construct($dbc) {
$this->conn = $dbc;
}
public function test() {
$this->conn->
}
}
$dbc = new Database();
$databaseTest = new DatabaseTest($dbc);
Проблема здесь в том, что завершение кода в тестовой функции будет работать некорректно.
PhpStorm не будет добавлять типы в автоматически сгенерированный блок документов для конструктора, даже если он должен иметь возможность вывести тип.
Даже если docblock неверен или параметр не имеет подсказки типа, разве PhpStorm не должен определить тип объекта на основе отправленного аргумента?
Я понимаю, что если я наберу подсказку для параметра конструктора или блока документа, я получу ожидаемые результаты, но я чувствую, что PhpStorm должен был понять это.
Я использую PhpStorm 2018.1.6.
Я уверен, что что-то упускаю из виду, и заранее благодарю вас за вашу помощь.
@param FeedServlet $servlet
, где FeedServlet — это класс параметра$servlet
. Таким образом, в вашем случае@param Database $dbc
(используя решение для комментариев к документам). - person YvesLeBorg   schedule 19.07.2018