Yii - นามแฝง
นามแฝงช่วยให้คุณไม่ต้องฮาร์ดโค้ดพา ธ หรือ URL แบบสัมบูรณ์ในโครงการของคุณ นามแฝงเริ่มต้นด้วยอักขระ @
ในการกำหนดนามแฝงคุณควรเรียกไฟล์ Yii::setAlias() วิธีการ -
// an alias of a file path
Yii::setAlias('@alias', '/path/to/alias');
// an alias of a URL
Yii::setAlias('@urlAlias', 'http://www.google.com');
คุณยังสามารถได้รับนามแฝงใหม่จากนามแฝงที่มีอยู่ -
Yii::setAlias('@pathToSomewhere', '@alias/path/to/somewhere');
คุณสามารถเรียกใช้เมธอด Yii :: setAlias () ในสคริปต์รายการหรือในคุณสมบัติที่เขียนได้ที่เรียกว่านามแฝงในการกำหนดค่าแอปพลิเคชัน -
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'aliases' => [
'@alias' => '/path/to/somewhere',
'@urlAlias' => 'http://www.google.com',
],
//other components...
]
]
ในการแก้ไขนามแฝงคุณควรเรียกใช้เมธอด Yii :: getAlias ()
Yii กำหนดนามแฝงต่อไปนี้ไว้ล่วงหน้า -
@app - เส้นทางพื้นฐานของแอปพลิเคชัน
@yii - โฟลเดอร์ที่เป็นที่ตั้งของไฟล์ BaseYii.php
@webroot - ไดเรกทอรีรากของเว็บของแอปพลิเคชัน
@web - URL พื้นฐานของแอปพลิเคชัน
@runtime- เส้นทางรันไทม์ของแอปพลิเคชัน ค่าเริ่มต้นเป็น @ app / runtime
@vendor- ไดเรกทอรีผู้ขายนักแต่งเพลง ค่าเริ่มต้นเป็น @ app / vendor
@npm- ไดเรกทอรีรากสำหรับแพ็คเกจ npm ค่าเริ่มต้นเป็น @ vendor / npm
@bower- ไดเร็กทอรีรูทสำหรับแพ็คเกจ bower ค่าเริ่มต้นเป็น @ vendor / bower
ตอนนี้เพิ่มฟังก์ชันใหม่ที่เรียกว่าactionAliases ()ไปยัง SiteController -
public function actionAliases() {
Yii::setAlias("@components", "@app/components");
Yii::setAlias("@imagesUrl", "@web/images");
var_dump(Yii::getAlias("@components"));
var_dump(Yii::getAlias("@imagesUrl"));
}
ในโค้ดด้านบนเราได้สร้างนามแฝง 2 ชื่อ: @components สำหรับส่วนประกอบของแอปพลิเคชันและ @imagesUrl สำหรับ URL ที่เราเก็บภาพแอปพลิเคชันทั้งหมด
พิมพ์ http: // localhost: 8080 / index.php? r = site / aliases คุณจะเห็นผลลัพธ์ต่อไปนี้ -