Laravel – 各ヘルパーのパス指定

概要

引数にパス文字列を与えて、サーバー上のパスや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に関する様々な情報を得ることができる。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です