有时候你会在Yii2中自定义一些组件,比如:Yii::$app->sms / Yii::$app->chat / Yii::$app->queue(你看,这个虽然是系统自带的,但不代表就能被认得出)
那怎么办?IDE无法认出的时候,难道我们一个个的写:
PHP代码
- <?php
- /** @var IM $im */
- $im = Yii::$app->im;
如果是这样,那也太累了。翻了一下google,找到这一篇教程:https://github.com/samdark/yii2-cookbook/blob/master/book/ide-autocompletion.md,意思就是说,你自己建一个Yii的文件,创建一些类,然后把刚才的Yii::$app->sms之类的,注释成类的property,然后IDE就能识别了。
最后找到一个项目:https://github.com/iiifx-production/yii2-autocomplete-helper,看样子好象一位俄罗斯大佬写的,嗯,它自动根据你的config来生成一个类似的_ide_components.php,并建议你在IDE里将Yii.php设置为:Mark As Text,这样IDE就不会主动去读Yii.php并识别了。
于是我composer引用了并执行了一下。然后在.gitignore里忽略了_ide_components.php,感觉世界一下子清静多了。
简单用法:
PHP代码
- 'bootstrap' => ['log', 'autocomplete'],
- 'components' => [
- 'autocomplete' => [
- 'class' => 'iiifx\Yii2\Autocomplete\Component',
- 'config' => [
- '@app/config/console.php', # <-- config list
- '@app/config/web.php',
- ],
- ],
- # ...
- ]