场景是这样的:
定义了一个 MyComponent,在配置文件中加上这个组件的定义,比如: ‘myComponent‘=>[‘class‘=>‘app/components/MyComponent‘], 就可以用Yii::$app->myComponent调用啦,但是,当输入、Yii::$app-> 后,myComponent不在自动提示的列表里,并且这个MyComponent的各种方法,PHPStorm无法给出代码提示,这对于追求效率和准确性的程序员是不可忍受的。
解决方案:
谷歌了一通,发现Yii2的核心开发人员之一,亚历山大,已经给出了解决方案,GITHub链接
原理就是重新定义一个Yii类,然后利用PhpDoc,如:
/** * Class BaseApplication * Used for properties that are identical for both WebApplication and ConsoleApplication * * @property \app\components\MyComponent $myComponent * @property \app\components\Mailer $mailer The mailer component. This property is read-only. Extended component. */ abstract class BaseApplication extends yii\base\Application { }
有了@property定义后,PHPStorm就可以去对应的类里找到相应的方法,然后提示代码了。
时间: 2024-10-09 04:32:44