0Pricing
PHP Academy · レッスン

Composerスクリプトとオートローディング

composer.jsonにスクリプトを定義し、クラスのオートローディングを有効にします

「Composerスクリプトとオートローディング」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

composer.jsonのスクリプト

scriptsキーでは、composer run-script NAMEまたは単にcomposer NAMEで実行する名前付きのシェルコマンドを定義します。

スクリプトの定義

スクリプトは、シェルコマンドの配列またはPHPのstaticメソッドコールバックの配列です。

// composer.json
{
  "scripts": {
    "test": "vendor/bin/phpunit",
    "lint": "vendor/bin/phpcs src/",
    "cs-fix": "vendor/bin/phpcbf src/"
  }
}

スクリプトの実行

composerに続けてスクリプト名を指定する短縮形式で実行できます。

$ composer test
$ composer run-script lint

イベントベースのスクリプト

Composerでは、ライフサイクルイベントにフックできます。利用できるイベントにはpost-install-cmd、post-update-cmd、post-autoload-dumpがあります。

// composer.json
{
  "scripts": {
    "post-install-cmd": ["php artisan migrate --force"]
  }
}

スクリプトの連鎖

scripts配列内で@script-nameを指定すると、別のスクリプトを呼び出せます。

// composer.json
{
  "scripts": {
    "build": ["@lint", "@test"]
  }
}

autoloadキーの種類

autoloadセクションでは、psr-4、classmap、filesの3種類をサポートしています。

// composer.json
{
  "autoload": {
    "psr-4":    { "App\\": "src/" },
    "classmap": ["database/"],
    "files":    ["src/helpers.php"]
  }
}

autoload-dev

autoload-devでは、ローカル環境やテスト環境でのみ使用するオートロード規則を追加できます。パッケージに含める必要のないテスト用の基底クラスなどに使用します。

オートローダーの最適化

composer dump-autoload --optimize(または-o)を実行すると、クラス解決を高速化する静的なクラスマップを構築できます。本番環境に適しています。

--classmap-authoritative

composer dump-autoload -aはクラスマップだけを参照し、PSR-4によるファイルシステムのスキャンにはフォールバックしません。すべてのクラスがマッピングされている場合に使用してください。

APCuキャッシュ

composer dump-autoload --apcuはAPCuを使用して、クラスとファイルの対応関係をリクエスト間でメモリにキャッシュします。負荷の高いサーバーで大幅な高速化が期待できます。

実践的なCIスクリプトの設定

一般的なプロジェクトスクリプトには、test、cs(コーディング規約)、analyse(PHPStan/Psalm)、そしてこれら3つを連鎖させるbuildがあります。

まとめ

Composerスクリプトを使うと、繰り返し行う作業を自動化できます。autoloadセクションでは、名前空間とファイルを対応付けます。本番環境ではdump-autoload -oを使用して、最高のパフォーマンスを実現してください。

クイックチェック

「composer install」の完了後に発生するイベントはどれですか。

よくある質問

「Composerスクリプトとオートローディング」レッスンは無料ですか?

はい。「Composerスクリプトとオートローディング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「Composerスクリプトとオートローディング」で何を学びますか?

composer.jsonにスクリプトを定義し、クラスのオートローディングを有効にします ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Composerスクリプトとオートローディング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. Composerのインストールと初期化
  2. パッケージの追加と更新
  3. composer.lockを理解する
  4. Composerスクリプトとオートローディング
← PHP Academyに戻る