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 คุณจะเห็นผลลัพธ์ต่อไปนี้ -