[解決済み】PSR-0とPSR-4の違いは何ですか?
2022-04-17 14:39:41
質問
最近、名前空間について読み、それがどのように有益であるかを知りました。現在、Laravelでプロジェクトを作成し、クラスマップのオートロードからネームスペースに移行しようとしています。しかし、PSR-0とPSR-4の実際の違いは何なのか、把握できていないようです。
私が読んだいくつかのリソースは...
理解できたこと
- PSR-4はアンダースコアをディレクトリセパレータに変換しない
- composer の特定のルールにより、ディレクトリ構造が複雑になり、PSR-0 の名前空間が冗長になるため、PSR-4 が作られました。
違いを説明する例があればありがたい。
どのように解決するのですか?
非常によく似ているので、少し混乱するのも無理はありません。要約すると、PSR-0 には PEAR スタイルのクラス名に関する後方互換機能がありましたが、PSR-4 ではそれが削除されており、そのため名前空間のあるコードしかサポートされていません。さらに、PSR-4では、名前空間全体をディレクトリ構造として持つことを強制せず、アンカーポイントに続く部分のみを持つことを強制しています。
例えば
Acme\Foo\
名前空間のアンカーは
src/
PSR-0では、以下のようになります。
Acme\Foo\Bar
で
src/Acme/Foo/Bar.php
で探すのに対して、PSR-4では
src/Bar.php
そのため、ディレクトリ構造を短くすることができます。一方、何がどの名前空間にあるのかを明確にするために、完全なディレクトリ構造を好む人もいるので、次のように言うこともできます。
Acme\Foo\
にあります。
src/Acme/Foo
をPSR-4で使用すると、上記のPSR-0と同等の動作になります。
長くなりましたが、新しいプロジェクトやほとんどの目的では、PSR-4を使って、PSR-0のことをすべて忘れることができます。
関連
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み】In_arrayが動作しない。
-
[解決済み] require, include, require_once, include_onceの違い?
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] パブリック、プライベート、プロテクトの違いは何ですか?
-
[解決済み] PHPの文字列で、シングルクオートとダブルクオートの違いは何ですか?
-
[解決済み] PHPのHTTP_HOSTとSERVER_NAMEの違いは何ですか?
-
[解決済み] クライアントサイドとサーバーサイドのプログラミングの違いは何ですか?
-
[解決済み】composer updateとcomposer installの違いは何ですか?
-
[解決済み] php artisan dump-autoload」と「composer dump-autoload」の違いとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】pdo - 非オブジェクトのメンバー関数prepare()への呼び出し【重複】。
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?