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ルートディレクトリ。
@web −アプリケーションのベースURL。
@runtime−アプリケーションのランタイムパス。デフォルトは@app / runtimeです。
@vendor−Composerベンダーディレクトリ。デフォルトは@app / vendorです。
@npm−npmパッケージのルートディレクトリ。デフォルトは@vendor / npmです。
@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と、すべてのアプリケーション画像を保存したURL用の@imagesUrlです。
http:// localhost:8080 / index.php?r = site / aliasesと入力すると、次の出力が表示されます-