ホームページ >バックエンド開発 >PHPチュートリアル >Composer がクラスパスの不一致に関する PSR-4 自動ロード非推奨警告を発行しているのはなぜですか?

Composer がクラスパスの不一致に関する PSR-4 自動ロード非推奨警告を発行しているのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 00:58:10456ブラウズ

Why is Composer issuing PSR-4 autoloading deprecation warnings about class path mismatches?

Composer PSR-4 自動ロードの非推奨: クラス パスの不一致

更新やインストールなどのコンポーザー コマンドを実行すると、次の非推奨の通知が表示される場合があります。 PSR-4 自動ロード標準に準拠していないクラス これは通常、クラス間に矛盾がある場合に発生します。完全修飾名とそれに対応するファイルのパス。

Path Case

最も一般的な原因は、パス名コンポーネントとクラス名の場合の不一致です。たとえば、「foo/bar/Baz.php」は「FooBarBaz」に対応しません。各パス名コンポーネントの大文字と小文字が、それが表す名前空間の大文字と小文字が一致していることを確認してください。 「FooBarBaz」の場合は「Foo/Bar/Baz.php」。場合によっては、クラス (または名前空間) の名前が FooBar であっても、そのディスク パスが「foo-bar」である場合があります。この状況でも警告がトリガーされます。ファイルまたはクラス (または名前空間) の名前を変更する必要があります。

多くの場合、パスやファイルの変更は、クラスや名前空間の名前を変更するよりも簡単です。これは、クラスまたは名前空間の名前を変更するには、新しい名前に一致するようにコードをリファクタリングする必要があるのに対し、パスの変更には何もリファクタリングする必要がないためです。コンテンツ。

ネストされた名前空間と宣言の欠落

次があるとします:

とクラス Dummy が src/Buzz で定義されているとします:

上記のコードは正常に動作しますが、他の状況と同様の警告がスローされます。正しいアプローチは次のとおりです:

"autoload": {
    "psr-4": {
        "Fizz\Buzz\": "src/"
    }
}

影響を受けるクラスだけでなく、そのクラスを使用またはインポートする他のファイルも変更する必要があります (たとえば、use FizzBu​​zzBuzzDummy; を宣言するなど)。 。

以上がComposer がクラスパスの不一致に関する PSR-4 自動ロード非推奨警告を発行しているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。