【PHP】composerの使い方:useする名前空間の確認方法

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

PHP の Laravel や CakePHP といったフレームワーク上で、
composer を使ってライブラリをインストールすることがあると思います。

use ライブラリの名前空間; とすればそのライブラリを簡単に使うことができますが…
あなたはその名前空間をどうやって調べていますか?

名前空間を定義している (autoload している) 場所はわかりにくいのですが、
プロジェクト/vendor/composer/autoload_classmap.php にあります。

【確認方法】ライブラリ・パッケージの名前空間

プロジェクト/vendor/composer/autoload_classmap.php

<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'OneLogin_Saml2_Auth' => $vendorDir . '/onelogin/php-saml/lib/Saml2/Auth.php',
/* 省略 */

上記例だと OneLogin_Saml2_Auth という名前空間が定期されているので、
use OneLogin_Saml2_Auth; でそのライブラリを使えることが分かります。

    'SpotifyWebAPI\\Request' => $vendorDir . '/jwilsson/spotify-web-api-php/src/Request.php',
    'SpotifyWebAPI\\Session' => $vendorDir . '/jwilsson/spotify-web-api-php/src/Session.php',
    'SpotifyWebAPI\\SpotifyWebAPI' => $vendorDir . '/jwilsson/spotify-web-api-php/src/SpotifyWebAPI.php',
    'SpotifyWebAPI\\SpotifyWebAPIAuthException' => $vendorDir . '/jwilsson/spotify-web-api-php/src/SpotifyWebAPIAuthException.php',
    'SpotifyWebAPI\\SpotifyWebAPIException' => $vendorDir . '/jwilsson/spotify-web-api-php/src/SpotifyWebAPIException.php',

上記例だったら use SpotifyWebAPI\SpotifyWebAPI; などでインポート可能です。
\\ の最初の \ は 2 つ目の \ をエスケープしているだけなので無視します。

Laravel の名前空間のエイリアス

プロジェクト/config/app.php を見れば、名前空間のエイリアス定義を見ることができます。

プロジェクト/config/app.php

 'aliases' => array(

        'App'               => 'Illuminate\Support\Facades\App',
        'Artisan'           => 'Illuminate\Support\Facades\Artisan',
        'Auth'              => 'Illuminate\Support\Facades\Auth',
        'Blade'             => 'Illuminate\Support\Facades\Blade',
        /* 省略 */

そもそも use キーワードってなんなの?

よく使うのはクラスのインポートですが、他にも色々できますよ。

  • 名前空間などのエイリアス(別名)を作成
  • 名前空間の全て、または一部をインポート
  • クラスをインポート
  • 関数をインポート
  • 定数をインポート

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

カテゴリ「CakePHP」の最新記事

最新記事

コメントを残す

*