概要
引数にパス文字列を与えて、サーバー上のパスやURLを返すヘルパー。
パス系はpublic_pathのみ挙動が異なるが、全般に以下のように決めておくと紛れがない。
- 引数を省略、もしくは引数に
''を与えると、それぞれのターゲットパスが得られる - 引数に
'/'を指定してはいけない - 引数のパス指定の頭に
'/'を付けない - 戻り値のパスの後に動的にパスを付加したいといった場合は、以下のいずれか
- 引数のパス指定の最後に
'/'を付ける - 引数のパス指定の最後に
'/'を付けず、戻り値に明示的に'/'を連結する
- 引数のパス指定の最後に
URL系はパス系と挙動が異なる。
- 引数は省略できない
- 引数に
''を与えると、ドメイン名のみのURLが得られる - 引数に
'/'を与えると、ドメイン名の後ろに’/’が付いたURLが得られる - 引数のパスの最後に
'/'を付けても付けなくても、結果のURLの最後には'/'は付かない - 戻り値のパスの後に動的にパスを付加したいといった場合は、以下の一択
- 引数のパス指定の最後に
'/'を付けても付けなくても、戻り値に明示的に'/'を連結する
- 引数のパス指定の最後に
サーバーパス系
app_path()~appディレクトリー
Laravelアプリケーションのappディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
app_path()、app_path('')
→/.../アプリケーションディレクトリー/appapp_path('abc/def')
→/.../アプリケーションディレクトリー/app/abc/defapp_path('abc/def/')→
/.../アプリケーションディレクトリー/app/abc/def/→app_path('/')
/.../アプリケーションディレクトリー/app//→app_path('/abc/def')
/.../アプリケーションディレクトリー/app//abc/def→app_path('/abc/def/')
/.../アプリケーションディレクトリー/app//abc/def/
base_path()~アプリケーションのベースディレクトリー
Laravelアプリケーションディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
base_path()、base_path('')
→/.../アプリケーションディレクトリーbase_path('abc/def')
→/.../アプリケーションディレクトリー/abc/defbase_path('abc/def/')→
/.../アプリケーションディレクトリー/abc/def/→base_path('/')
/.../アプリケーションディレクトリー//→base_path('/abc/def')
/.../アプリケーションディレクトリー//abc/def→base_path('/abc/def/')
/.../アプリケーションディレクトリー//abc/def/
config_path~configディレクトリー
Laravelアプリケーションのcopnfigディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
config_path()、config_path('')
→/.../アプリケーションディレクトリー/configconfig_path('abc/def')
→/.../アプリケーションディレクトリー/copnfig/abc/defconfig_path('abc/def/')→
/.../アプリケーションディレクトリー/copnfig/abc/def/→config_path('/abc/def')
/.../アプリケーションディレクトリー/copnfig//abc/def→config_path('/abc/def/')
/.../アプリケーションディレクトリー/copnfig//abc/def/
public_path~publicディレクトリー
Laravelアプリケーションのpublicディレクトリー下の相対パスまたは絶対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'の有無で結果が変わる。
相対パス・絶対パスいずれの形式も指定可能だが、結果は同じ。
public_path()、public_path('')
→/.../アプリケーションディレクトリー/publicpublic_path('abc/def')
→/.../アプリケーションディレクトリー/public/abc/defpublic_path('abc/def/')→
/.../アプリケーションディレクトリー/public/abc/def/public_path('/')
→/.../アプリケーションディレクトリー/public_path('/abc/def')→
/.../アプリケーションディレクトリー/public/abc/defpublic_path('/abc/def/')→
/.../アプリケーションディレクトリー/public/abc/def/
resource_path~resourcesディレクトリー
Laravelアプリケーションのresourcesディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。ディレクトリー名は複数のresourcesだがヘルパー名は単数形のresource。
末尾の'/'の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
resource_path()、resource_path('')
→/.../アプリケーションディレクトリー/resourcesresource_path('abc/def')
→/.../アプリケーションディレクトリー/resources/abc/defresource_path('abc/def/')→
/.../アプリケーションディレクトリー/resources/abc/def/→resource_path('/')
/.../アプリケーションディレクトリー/resources//→resource_path('/abc/def')
/.../アプリケーションディレクトリー/resources//abc/def→resource_path('/abc/def/')
/.../アプリケーションディレクトリー/resources//abc/def/
storage_path~storageディレクトリー
Laravelアプリケーションのstorageディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
storage_path()、storage_path('')
→/.../アプリケーションディレクトリー/storagestorage_path('abc/def')
→/.../アプリケーションディレクトリー/storage/abc/defstorage_path('abc/def/')→
/.../アプリケーションディレクトリー/storage/abc/def/→storage_path('/')
/.../アプリケーションディレクトリー/storage//→storage_path('/abc/def')
/.../アプリケーションディレクトリー/storage//abc/def→storage_path('/abc/def/')
/.../アプリケーションディレクトリー/storage//abc/def/
URL系
asset()~publicディレクトリー下のアセット
Laravelアプリケーションのpublicディレクトリー下の相対パスまたは絶対パスを与えて、アセットへのURLを返す。
末尾の'/'の有無は結果に影響しないが、'/'を単独で指定するとドメイン名の後に'/'が付加されたURLになる。
以下の例では、public/abcディレクトリー下のdefファイルを指定していて、ブラウザーに戻り値のURLを指定するとdefファイルの内容が表示される。
asset('abc/def')asset('abc/def/')asset('/abc/def')asset('/abc/def/')
→http://ドメイン/abc/defasset('/')
→http://ドメイン/asset()
→エラー
セキュア―な通信環境下の場合はsecure_asset()を使う。戻り値はhttp→httpsとなったURL。
url()~アプリケーションのURL
Laravelアプリケーションのドメインより後のディレクトリーを与えて、URLを返す。ルーティングで定義したパスを指定するとドメイン名を含んだURLが得られる。パスの指定は相対/絶対のどちらでもよい。
末尾の'/'の有無は結果に影響せず、戻り値の末尾には常に'/'が付かない。
'/'を単独で指定するとドメイン名の後に'/'が付加されたURLになる。
url('abc/def')url('abc/def/')url('/abc/def')url('/abc/def/')
→http://ドメイン/abc/defurl('/')
→http://ドメイン/asset()
→エラー
url()ヘルパーを使ってURLに関する様々な情報を得ることができる。