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 -