yii2support icon indicating copy to clipboard operation
yii2support copied to clipboard

Не работают подсказки для "Configuration arrays for object instantiation"

Open beeryukov opened this issue 3 years ago • 7 comments

What steps will reproduce the problem?

Объявить класс, наследующий yii\base\BaseObject (в котором реализована фича configuration arrays); Вызвать конструктор класса через new; Написать пустые квадратные скобки в вызове конструктора (таким образом начать заполнять configuration array);

What is the expected result?

В качестве ключей массива появляются подсказки с именами свойств класса

What do you get instead?

Подсказки не появляются. Всплывает сообщение "No suggestions"

Additional info

Сам плагин активен и работает. В частности работают подсказки для Model::rules и для Url::to(); Также подсказки работают в конфиге, в контроллере в функции behaviors, например:

'authManager' => [
       'class' => 'yii\rbac\DbManager',
        'defaultRoles' => ['guest', 'user'],
 ]

Также всё ок при использовании CreateObject:

$ojbect = Yii::createObject([
        'class' => 'app\components\SomeClass',
        'someProperty' => 1 // this works
]);

Не работает только в сочетании с new

new SomeClass([
]);

Также, заявленная фича "Go To Declaration, Rename, Find usages and Help popups work whenever code completion works" не работает вообще нигде, даже там, где с автокомплитом всё ок.

Q A
IDE Name PhpStorm
IDE Version 2021.1.2 (Build #PS-211.7142.44, built on April 30, 2021)
Plugin version com.yii2support (0.10.58.37)
Yii App Template basic

beeryukov avatar May 28 '21 11:05 beeryukov

@beeryukov теста ради попробуй вот эту версию, я там правил кучку всяких мелочей Yii2 Support-0.10.58.40.zip Это билд из этого PR https://github.com/nvlad/yii2support/pull/270

iglooom avatar Jun 22 '21 11:06 iglooom

@iglooom, спасибо, попробовал. Подсказки для new SomeClass([]) появились, уже хорошо :) А вот Go To Declaration, Rename, Find usages не заработало.

beeryukov avatar Jul 14 '21 06:07 beeryukov

https://plugins.jetbrains.com/plugin/9388-yii2-support

Calculates return type for Yii::createObject call and one/all method calls of ActiveRecord

@beeryukov По какой-то причине автоподсказки в конструкторе для пропертей создаваемых через new объектов начинаются не с BaseObject, а с ActiveRecord. Причины не понимаю, хотелось бы и для BaseObject это иметь, но раз не сделали, то возможно был веский повод. Хотя тогда странно, что с Yii::createObject работает.

@nvlad, запили пожалуйста, как будет время, мы любим твой плагин!

gvlasov avatar Jul 21 '21 15:07 gvlasov

@gvlasov а речь про тот билд что я скинул?

iglooom avatar Jul 22 '21 16:07 iglooom

@iglooom Нет, хочется чтобы автор плагина добавил фичи из того билда в основную ветку

gvlasov avatar Aug 17 '21 12:08 gvlasov

Да, тоже хотелось бы, я даже на указанное мыло писал уже ему, но пока без ответа.

iglooom avatar Aug 17 '21 12:08 iglooom

@beeryukov теста ради попробуй вот эту версию, я там правил кучку всяких мелочей Yii2 Support-0.10.58.40.zip Это билд из этого PR #270

Большое спасибо, как я устал модели делать вот так $model = new Model(); $model->abc = '';

С этим билдом вновь работает new Model(['...

Спасиииибо!)

nssmart avatar May 10 '22 07:05 nssmart