# 让 PhpStorm 支持 Yii2 自定义组件的方法的自动提示

**URL:** <https://www.shiqidu.com/t/topic/713>\
**Category:** 开发调优\
**Tags:** JetBrains\
**Created:** [2020 年7 月 30 日 08:08 UTC](https://www.shiqidu.com/t/topic/713 "2020-07-30T08:08:51Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

作者： ![Leon](https://www.shiqidu.com/user_avatar/www.shiqidu.com/leon/32/5_2.png) [@Leon](https://www.shiqidu.com/u/Leon)\
发布日期： [2020 年7 月 30 日 08:08 UTC](https://www.shiqidu.com/t/topic/713/1 "2020-07-30T08:08:51Z")

</div>

如果你在Yii2中自定义组件，那么你在使用的过程中PhpStorm是不支持自动提示的，比如

```php
Yii::$app->redis->set(key, value);
Yii::$app->myComponents->method(param1, param2);

```

这样写代码的时候总是没有安全感，比如redis组件的executeCommand方法，写的时候总怕方法名写错

```php
Yii::$app->redis->executeCommand()

```

想要PhpStorm自动提示，只需要在项目根目录下新建一个 **\_ide\_helper.php** 文件，内容如下

```php
class Yii
{
    /**
     * @var MyApplication
     */
    public static $app;
}

/**
 * 其他的组件写到这
 * @property \yii\redis\Connection $redis
 * @property \common\components\AliOss $AliOss
 */
class MyApplication extends \yii\web\Application
{
}

/**
 * @property \common\models\User $identity
 */
class User
{
}

```

然后就可以愉快的写代码了。

---

<div class="post-metadata">

作者： ![kittyfamous](https://www.shiqidu.com/letter_avatar_proxy/v4/letter/k/5f9b8f/32.png) [@kittyfamous](https://www.shiqidu.com/u/kittyfamous)\
发布日期： [2020 年8 月 5 日 16:09 UTC](https://www.shiqidu.com/t/topic/713/2 "2020-08-05T16:09:06Z")

</div>

坛主真奇才啊，弱弱的问下，为什么这样phpstorm就可以提示了？

---

<div class="post-metadata">

作者： ![Leon](https://www.shiqidu.com/user_avatar/www.shiqidu.com/leon/32/5_2.png) [@Leon](https://www.shiqidu.com/u/Leon)\
发布日期： [2020 年8 月 6 日 02:01 UTC](https://www.shiqidu.com/t/topic/713/3 "2020-08-06T02:01:19Z")

</div>

谬赞了，我也是网上搜的。  
当你在PHPstorm中打Yii时会找到这个Yii类，而Yii::$app 又是这个类的一个属性，通过注释又能找到MyApplication,MyApplication又通过注释能找到Yii::$pp-\>redis对应的类，然后就能提示类里的方法了。  
主要还是注释的原因。

---

<div class="post-metadata">

作者： ![kittyfamous](https://www.shiqidu.com/letter_avatar_proxy/v4/letter/k/5f9b8f/32.png) [@kittyfamous](https://www.shiqidu.com/u/kittyfamous)\
发布日期： [2020 年8 月 6 日 03:35 UTC](https://www.shiqidu.com/t/topic/713/4 "2020-08-06T03:35:06Z")

</div>

懂了，以前全部是自己手写的，多谢。

---

<div class="post-metadata">

作者： ![Leon](https://www.shiqidu.com/user_avatar/www.shiqidu.com/leon/32/5_2.png) [@Leon](https://www.shiqidu.com/u/Leon)\
发布日期： [2020 年8 月 6 日 10:34 UTC](https://www.shiqidu.com/t/topic/713/5 "2020-08-06T10:34:01Z")

</div>

客气了。
