Yii - Alias

Les alias vous aident à ne pas coder en dur des chemins ou des URL absolus dans votre projet. Un alias commence par le caractère @.

Pour définir un alias, vous devez appeler le Yii::setAlias() méthode -

// an alias of a file path
Yii::setAlias('@alias', '/path/to/alias');
// an alias of a URL
Yii::setAlias('@urlAlias', 'http://www.google.com');

Vous pouvez également dériver un nouvel alias à partir d'un alias existant -

Yii::setAlias('@pathToSomewhere', '@alias/path/to/somewhere');

Vous pouvez appeler la méthode Yii :: setAlias ​​() dans le script d'entrée ou dans une propriété accessible en écriture appelée alias dans la configuration de l'application -

$config = [
   'id' => 'basic',
   'basePath' => dirname(__DIR__),
   'bootstrap' => ['log'],
   'components' => [
      'aliases' => [
         '@alias' => '/path/to/somewhere',
         '@urlAlias' => 'http://www.google.com',
      ],
      //other components...
   ]
]

Pour résoudre l'alias, vous devez appeler la méthode Yii :: getAlias ​​().

Yii prédéfinit les alias suivants -

  • @app - Le chemin de base de l'application.

  • @yii - Le dossier dans lequel se trouve le fichier BaseYii.php.

  • @webroot - Le répertoire racine Web de l'application.

  • @web - L'URL de base de l'application.

  • @runtime- Le chemin d'exécution de l'application. La valeur par défaut est @ app / runtime.

  • @vendor- Le répertoire des fournisseurs de Composer. La valeur par défaut est @ app / vendor.

  • @npm- Le répertoire racine des packages npm. La valeur par défaut est @ vendor / npm.

  • @bower- Le répertoire racine des paquets bower. La valeur par défaut est @ vendor / bower.

Maintenant, ajoutez une nouvelle fonction appelée actionAliases () au SiteController -

public function actionAliases() {
   Yii::setAlias("@components", "@app/components");
   Yii::setAlias("@imagesUrl", "@web/images");
   var_dump(Yii::getAlias("@components"));
   var_dump(Yii::getAlias("@imagesUrl"));
}

Dans le code ci-dessus, nous avons créé deux alias: @components pour les composants d'application et @imagesUrl pour l'URL où nous avons stocké toutes les images d'application.

Tapez http: // localhost: 8080 / index.php? R = site / aliases, vous verrez la sortie suivante -