0Pricing
PHP Academy · レッスン

名前空間の宣言と利用

クラスを名前空間にまとめ、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 名前空間の宣言と利用
  2. 入れ子の名前空間とエイリアス
  3. PSR-4オートローディング標準
  4. オートローダーの登録
← PHP Academyに戻る