名前空間の宣言と利用
クラスを名前空間にまとめ、use文でインポートします
「名前空間の宣言と利用」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
名前空間とは
名前空間は、関連するクラス、関数、定数をまとめ、ライブラリ間の名前の衝突を防ぎます。
名前空間の宣言
PHPファイルでは、<?phpの後にnamespaceキーワードを最初の文として記述します。
<?php
namespace App\Services;
class Logger {
public function log(string $msg): void {
echo $msg;
}
}名前空間のセグメント
セグメントはバックスラッシュ(\)で区切ります。各セグメントは通常、PSR-4のオートロードにおけるディレクトリに対応します。
use によるインポート
useキーワードは完全修飾クラス名をインポートし、短い名前で参照できるようにします。
<?php
namespace App\Controllers;
use App\Services\Logger;
class HomeController {
public function index(): void {
$logger = new Logger();
$logger->log("visited");
}
}完全修飾名
useを使わずにクラスを参照するには、先頭にバックスラッシュを付けます。
<?php
$logger = new \App\Services\Logger();
$logger->log("Hello");グローバル名前空間
名前空間を指定しないコードは、グローバル名前空間に属します。\DateTimeのような組み込みクラスもそこに属します。名前空間内では、\を先頭に付けてください。
関数と定数のインポート
クラス以外のシンボルをインポートするには、use functionとuse constを使用します。
<?php
namespace App;
use function App\Utils\formatDate;
use const App\Utils\DATE_FORMAT;
echo formatDate(time(), DATE_FORMAT);グループ化した use 文
PHP 7以降では、1つのグループ化したuseブロックで複数のシンボルをインポートできます。
<?php
use App\Models\{User, Post, Comment};1ファイルにつき1つの名前空間
1つのファイルに複数の名前空間を宣言することは可能ですが、推奨されません。明確さとオートローダーとの互換性のため、1ファイルにつき1つの名前空間にしてください。
一般的な規約
LaravelとSymfonyでは、App\をルート名前空間として使用し、composer.jsonでsrc/またはapp/にマッピングします。
サブ名前空間の構成
機能またはレイヤー単位でグループ化します。例:App\Http\Controllers、App\Domain\Orders、App\Infrastructure\Database。
名前空間の振り返り
重要な点:namespaceは最初の文でなければなりません。useはシンボルをインポートします。バックスラッシュはセグメントを区切ります。名前空間内でグローバルクラスを使用する場合は、\を先頭に付けます。
クイックチェック
別の名前空間からクラスをインポートするキーワードは何ですか?
よくある質問
「名前空間の宣言と利用」レッスンは無料ですか?
はい。「名前空間の宣言と利用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「名前空間の宣言と利用」で何を学びますか?
クラスを名前空間にまとめ、use文でインポートします ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「名前空間の宣言と利用」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 名前空間の宣言と利用
- 入れ子の名前空間とエイリアス
- PSR-4オートローディング標準
- オートローダーの登録