
こんにちは。iQeda [@iQeeeda] です。
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」の最新記事

【PHP】デバッグ方法を一挙解説【API開発で値を確認する方法】
TerraformによるLinodeインスタンス新規作成サンプル
【Fingerprint】CircleCIがSSHできない問題解決
【Laravel】セッションタイムアウト後のログイン処理で前回URLに遷移するバグ修正
M1 Mac(2021)でanyenv/phpenvの初期設定!