[Laravel] パッケージのパスを取得する
パッケージ開発をしていると、パッケージのルートパスを取得したいときがある。 でも、そんなヘルパは残念ながら用意されていない。そこで今回は、パッケージのパスを取得する方法を紹介。
base_url()
を使う
真っ先に思いつくのはこれ。
ただ、この方法だと package_name
をパッケージごとに変える必要があって、きれいではないかな。
function package_path($path = null)
{
return base_path('vendor/package_name/' . $path);
}
__DIR__
を使う
おすすめなのは、__DIR__
を使う方法。これなら、どんなパッケージでも同じ書き方ができる。
ただし、package_path()
を vendor/package_path/src/helpers.php
に書くことが前提。
function package_path($path = null)
{
__DIR__ . '/../' . $path;
}
ちなみに、この方法は Laravel-AdminLTE のソースに書いてあって知った。 高い評価を得ているパッケージのコードを読むと発見が多い。