Öğeleri kullanan bir pencere öğesi var. Böyle bir varlık görünüm:Çalışma zamanında widget varlıkları yolunu değiştirme
class Aliases extends Component {
public function init() {
Yii::setAlias('@device', Utils::device());
}
}
Utils::device()
cihazın UA ayrıştırır ve mobile
, tablet
veya döner bir fonksiyonudur:
class publicHeaderNavbarAsset extends AssetBundle {
public $sourcePath = '@app/components/@device';
public $css = [
'styles.css'
];
public $js = [];
public $depends = [];
}
Ayrıca bu gibi tanımlanmış bir (desteksiz) bileşenine sahip Cihaz tipine bağlı olarak desktop
.
Sorun şu ki, Yii2, @device
değerini sahip olduğu değere dönüştürüyor gibi görünmüyor. Ben ilk bu benim hatam olabileceğini düşündüm, ama sonra hiç sourcePath
değiştirdi: kopyalanmış bir yolu (basepath/componenets/basepath
) ile bir hata tetikleyecek sadece görmek için
public $sourcePath = '@app/components/@app';
ama öyle olmadı.
Varlıktaki sourcePath
çalışma zamanını değiştirebileceğim bir yöntem var mı? Ya da belki Yii2'yi sourcePath
'daki tüm diğer adları ayrıştırırsınız?