🧐

[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 のソースに書いてあって知った。 高い評価を得ているパッケージのコードを読むと発見が多い。