Yii - Alias

Los alias lo ayudan a no codificar rutas absolutas o URL en su proyecto. Un alias comienza con el carácter @.

Para definir un alias debe llamar al Yii::setAlias() método -

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

También puede derivar un nuevo alias de uno existente:

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

Puede llamar al método Yii :: setAlias ​​() en el script de entrada o en una propiedad de escritura llamada alias en la configuración de la aplicación -

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

Para resolver el alias, debe llamar al método Yii :: getAlias ​​().

Yii predefine los siguientes alias:

  • @app - La ruta base de la aplicación.

  • @yii - La carpeta donde se encuentra el archivo BaseYii.php.

  • @webroot - El directorio raíz web de la aplicación.

  • @web - La URL base de la aplicación.

  • @runtime- La ruta de tiempo de ejecución de la aplicación. El valor predeterminado es @ app / runtime.

  • @vendor- El directorio de proveedores de Composer. El valor predeterminado es @ app / vendor.

  • @npm- El directorio raíz de los paquetes npm. El valor predeterminado es @ vendor / npm.

  • @bower- El directorio raíz de los paquetes de bower. El valor predeterminado es @ vendor / bower.

Ahora, agregue una nueva función llamada 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"));
}

En el código anterior, creamos dos alias: @components para los componentes de la aplicación y @imagesUrl para la URL donde almacenamos todas las imágenes de la aplicación.

Escriba http: // localhost: 8080 / index.php? R = site / aliases, verá el siguiente resultado: