入れ子の名前空間とエイリアス
サブ名前空間を作成し、エイリアスで記述を簡潔にします
「入れ子の名前空間とエイリアス」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
ネストした名前空間の例
PHPの名前空間は、バックスラッシュで区切られたセグメントを増やして、深くネストできます。
<?php
namespace Vendor\Package\Http\Middleware;
class AuthMiddleware {
public function handle(): void {}
}エイリアスを使う理由
長い名前空間のパスを使うとコードが冗長になります。エイリアスを使うと、選択した短い名前でクラスを参照できます。
クラスのエイリアス
use … as Aliasを使用すると、現在のファイル内でインポート名を変更できます。
<?php
namespace App\Controllers;
use App\Infrastructure\Database\MySQLConnection as DB;
class UserController {
public function __construct(private DB $db) {}
}名前空間プレフィックスのエイリアス
名前空間プレフィックスにエイリアスを付けると、深くネストした参照を短くできます。
<?php
use App\Domain\Orders\Repositories as OrderRepo;
$repo = new OrderRepo\EloquentOrderRepository();クラス名の衝突の解決
2つのパッケージが同じ短い名前のクラスを定義している場合は、一方にエイリアスを付けます。
<?php
use League\Flysystem\Filesystem;
use Illuminate\Filesystem\Filesystem as LaravelFS;
$fs1 = new Filesystem(/* adapter */);
$fs2 = new LaravelFS();エイリアスを使ったグループ化した use
グループ化したuseブロックでは、シンボルごとにエイリアスも指定できます。
<?php
use App\Models\{User, Post as Article};深くネストした構造
実際のDDDプロジェクトでは、4つ以上のセグメントを持つ名前空間がよく使われます。例:App\Domain\Billing\Services\InvoiceGenerator。
エイリアスのスコープ
エイリアスのスコープはファイル単位です。あるファイルで定義したエイリアスは、別のファイルには影響しません。
2つのロガーライブラリ
例:Monologとカスタムロガーを同時に使用します。
<?php
use Monolog\Logger;
use App\Logging\Logger as AppLogger;
$monolog = new Logger("channel");
$app = new AppLogger();関数と定数のエイリアス
インポートした関数や定数にもエイリアスを付けられます。
<?php
use function App\Helpers\formatMoney as money;
echo money(1999); // "€19.99"ベストプラクティス
意味のあるエイリアスを付けてください。入力の手間を減らすために可読性を犠牲にするのではなく、衝突の解決にエイリアスを使用します。
まとめ
ネストした名前空間はディレクトリ構造を表現します。エイリアスは名前の衝突を解決し、冗長さを減らします。どちらもファイルの先頭でuse … asを使用します。
クイックチェック
クラスのインポートにどのようにエイリアスを付けますか?
よくある質問
「入れ子の名前空間とエイリアス」レッスンは無料ですか?
はい。「入れ子の名前空間とエイリアス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「入れ子の名前空間とエイリアス」で何を学びますか?
サブ名前空間を作成し、エイリアスで記述を簡潔にします ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「入れ子の名前空間とエイリアス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 名前空間の宣言と利用
- 入れ子の名前空間とエイリアス
- PSR-4オートローディング標準
- オートローダーの登録