概要
引数にパス文字列を与えて、サーバー上のパスやURLを返すヘルパー。
パス系はpublic_path
のみ挙動が異なるが、全般に以下のように決めておくと紛れがない。
- 引数を省略、もしくは引数に
''
を与えると、それぞれのターゲットパスが得られる - 引数に
'/'
を指定してはいけない - 引数のパス指定の頭に
'/'
を付けない - 戻り値のパスの後に動的にパスを付加したいといった場合は、以下のいずれか
- 引数のパス指定の最後に
'/'
を付ける - 引数のパス指定の最後に
'/'
を付けず、戻り値に明示的に'/'
を連結する
- 引数のパス指定の最後に
URL系はパス系と挙動が異なる。
- 引数は省略できない
- 引数に
''
を与えると、ドメイン名のみのURLが得られる - 引数に
'/'
を与えると、ドメイン名の後ろに’/’が付いたURLが得られる - 引数のパスの最後に
'/'
を付けても付けなくても、結果のURLの最後には'/'
は付かない - 戻り値のパスの後に動的にパスを付加したいといった場合は、以下の一択
- 引数のパス指定の最後に
'/'
を付けても付けなくても、戻り値に明示的に'/'
を連結する
- 引数のパス指定の最後に
サーバーパス系
app_path()~appディレクトリー
Laravelアプリケーションのapp
ディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。
末尾の'/'
の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
app_path()
、app_path('')
→/.../アプリケーションディレクトリー/app
app_path('abc/def')
→/.../アプリケーションディレクトリー/app/abc/def
app_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/def
base_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('')
→/.../アプリケーションディレクトリー/config
config_path('abc/def')
→/.../アプリケーションディレクトリー/copnfig/abc/def
config_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('')
→/.../アプリケーションディレクトリー/public
public_path('abc/def')
→/.../アプリケーションディレクトリー/public/abc/def
public_path('abc/def/')
→
/.../アプリケーションディレクトリー/public/abc/def/
public_path('/')
→/.../アプリケーションディレクトリー/
public_path('/abc/def')
→
/.../アプリケーションディレクトリー/public/abc/def
public_path('/abc/def/')
→
/.../アプリケーションディレクトリー/public/abc/def/
resource_path~resourcesディレクトリー
Laravelアプリケーションのresources
ディレクトリー下の相対パスを与えて、サーバー上のフルパスを返す。ディレクトリー名は複数のresources
だがヘルパー名は単数形のresource
。
末尾の'/'
の有無で結果が変わる。
絶対パスの形式にすると戻り値のパスがおかしくなる。
resource_path()
、resource_path('')
→/.../アプリケーションディレクトリー/resources
resource_path('abc/def')
→/.../アプリケーションディレクトリー/resources/abc/def
resource_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('')
→/.../アプリケーションディレクトリー/storage
storage_path('abc/def')
→/.../アプリケーションディレクトリー/storage/abc/def
storage_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/def
asset('/')
→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/def
url('/')
→http://ドメイン/
asset()
→エラー
url()
ヘルパーを使ってURLに関する様々な情報を得ることができる。