Yii:从小部件内部用简短的符号解析路径别名


Yii: resolve Path Alias with short notation from inside a widget

如何在Yii框架中从path Alias的小部件内部以通用的方式解析真实路径。一般来说,我的意思是,小部件可以安装在web应用程序的components文件夹或模块的components文件夹中,而无需调整其代码。例如

Yii::getPathOfAlias('application.components.timepicker.assets'); 

如果我把我的小部件安装在web应用程序的components文件夹中,效果很好,但如果我把它放在某个模块的components文件夹中,这就不起作用了。有没有一种方法可以跳过application.components,比如:

Yii::getPathOfAlias('timepicker.assets'); 

并进行任何合理的额外修改。

Yii要求路径别名是绝对的,因此不能使用timepicker.assets。解决方案是在主组件类中创建自己的路径别名:

<?php
Yii::setPathOfAlias('timepicker', dirname(__FILE__)); 
class ETimepicker
{
    ....