Yii - Alias

Gli alias ti aiutano a non codificare percorsi assoluti o URL nel tuo progetto. Un alias inizia con il carattere @.

Per definire un alias dovresti chiamare il file Yii::setAlias() metodo -

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

Puoi anche derivare un nuovo alias da uno esistente:

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

È possibile chiamare il metodo Yii :: setAlias ​​() nello script di immissione o in una proprietà scrivibile chiamata alias nella configurazione dell'applicazione -

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

Per risolvere l'alias, è necessario chiamare il metodo Yii :: getAlias ​​().

Yii predefinisce i seguenti alias:

  • @app - Il percorso di base dell'applicazione.

  • @yii - La cartella in cui si trova il file BaseYii.php.

  • @webroot - La directory principale Web dell'applicazione.

  • @web - L'URL di base dell'applicazione.

  • @runtime- Il percorso di runtime dell'applicazione. Il valore predefinito è @ app / runtime.

  • @vendor- La directory dei fornitori di Composer. Il valore predefinito è @ app / vendor.

  • @npm- La directory principale per i pacchetti npm. Il valore predefinito è @ vendor / npm.

  • @bower- La directory principale per i pacchetti bower. Il valore predefinito è @ vendor / bower.

Ora aggiungi una nuova funzione chiamata actionAliases () al SiteController -

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

Nel codice precedente, abbiamo creato due alias: @components per i componenti dell'applicazione e @imagesUrl per l'URL in cui abbiamo archiviato tutte le immagini dell'applicazione.

Digita http: // localhost: 8080 / index.php? R = site / aliases, vedrai il seguente output: