問題タブ [psr-0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
25787 参照

php - classmap が実際に高速な場合、composer で PSR-0 または PSR-4 オートロードを使用するのはなぜですか?

PSR 標準を使用してファイルを検索するか、composer にディレクトリを指定してクラスをスキャンできることを理解しています。ドキュメントでは、PSR-4標準の使用が推奨されています。composer が最適化されたオートローダーを作成するオプションもあります。これは、基本的に完全な classmap を生成します。ロードする最善の方法がクラスマップを使用する場合、なぜ PSR-4 を使用する必要があるのでしょうか?

とにかく整理するのに良い方法なので、ディレクトリ構造を維持することは私にとって理にかなっています。ただし、論理的なオプションは、開発マシンで PSR-4 の読み込みを使用してから、運用環境でクラスマップを使用することです。そうすれば、新しいクラスを作成するたびにクラスマップを再構築する必要はありませんが、実稼働環境ではデプロイ プロセスの一部として完全なクラスマップが作成され、追加の呼び出しは必要ありません。

0 投票する
1 に答える
730 参照

php - Symfony オートローダーの使用

現在使用している SplAutoloading im から Symfonies オートローダーへのアプリケーションの移行をテストしています。

私のアプリケーション構造は

私のTest.phpはこのようなものです

私のindex.phpにロードしようとしています

このようにクラスをロードできない理由がわかりませんか? 何か助けはありますか?ここでの正しい使い方は何ですか

0 投票する
0 に答える
223 参照

php - Composer が psr-0 クラスをロードしない

何らかの理由で、作曲家が私のクラスを見つけることができません。次のようなフォルダー構造があります。

私の composer.json autoload 部分は次のようになります。

例として、私のClass.phpファイルは次のようになります。

次に、そのクラスをロードしようとする理由src/Vendor/Lib/Class.phpは、コードでこれを行うだけです。

しかし、PHPはクラスが見つからないというエラーを出します。

私はすでにやろうとしましたcomposer updateが、それは解決しませんでした。

では、なぜ私のクラスが見つからないのでしょうか? ここで何が間違っていますか?

0 投票する
1 に答える
436 参照

php - laravelでpsr-0を使って外部クラスを追加する方法

Amaezone S3 サービスの laravel に独自のクラスを追加しています。ここに私の作曲家ファイルがあります

ディレクトリを作成しましたapp/src/App

amezoneのすべてのlibをこのディレクトリに入れます

クラスを作成しAmezones3.php、独自のコードをいくつか配置します。このクラスに追加したいのは、amezoneS3 サービス クラスであるクラスです。

クラスAmezones3.phpでは、私の構築関数は以下のとおりです

} ?>

しかし、エラーが発生するページを実行すると

ここで正常に動作しているこのビデオをフォローしています

注:すべてが正常に機能していますが、クラスをctructorに含めようとすると、機能しません。

助けてください。

前もって感謝します。プラッド

0 投票する
1 に答える
2670 参照

php - Composer 名前空間によるクラスのオーバーライド/拡張

\App\カプセル化されたすべてのアプリを含む1つの名前空間(たとえば、(クライアント フォルダーを優先し、クライアントのフォルダーに必要なオーバーライド ファイルを作成するだけで、メイン アプリの機能をオーバーライドしてクライアントの要求を満たすことができます)

現在、クライアントのオーバーライド クラスが元のクラスを拡張した方がよいのではないかと考えています。これの主な用途は、クラス メソッドの一部のみを編集することであることに気付きました。 「メインクラス」に出現する可能性のある新しいメソッドの場合。そして、名前空間を維持しながら、これを実現する方法に苦労してきました。

例: 販売コントローラー クラス ==> \App\Controller\Sale

  • 「Client/App/Controller/Sale.php」ファイルがない場合、デフォルトの「Main/App/Controller/Sale.php」が使用されます。
  • しかし、もしあれば、私が欲しいのは、「Client/App/Controller/Sale.php」が「Main/App/Controller/Sale.php」を拡張できることです

    /li>
  • このようにして、クライアントのクラスの一部のメソッドのみをオーバーライドでき、メイン クラスが更新された場合、クライアントのアプリに反映されます。

問題は、クライアントとメイン クラスの両方が\App\名前空間にあるため、上記の "use" ステートメントを機能させる方法がわからないことです。主な理由は、ファイルの名前空間が異なるため、先頭に追加された名前空間 (例では"\Main + namespace ) が機能しないことです。

それがうまくいくと私が思った別の方法は、作曲家のオートロードをいじって、名前空間が「メイン」または「オリジナル」で始まるかどうかを確認し、名前空間からその部分を削除して、「メイン」フォルダーを強制的に使用することです。しかし、これを実装できる場所が見つかりませんでした。

私が考えたもう 1 つの解決策は、メイン クラスの機能をサブ クラスに分割することでした。これは、現在のオートロード スキームを使用してオーバーライドできますが、システム全体に非常に多くのクラスとファイルを分散させることが賢明かどうかはわかりません。

ヘルプやガイダンスはいつでも大歓迎です。

0 投票する
1 に答える
235 参照

symfony - ClassNotFoundException - symfony (2.4.4) でカスタム名前空間を登録するにはどうすればよいですか

MyBundle下 に新しいバンドルがありますsrc/MyVendor/Bundle/MyBundle/

MyClassデフォルトのコントローラーでは、名前空間に存在するクラスを使用したいと考えていますMyVendor\MyComponent

これは下にありますsrc/MyVendor/Component/MyComponent/src/MyVendor/MyComponent/MyClass.php

私はやろうとした

入っていますapp/autoload.phpが、まだClassNotFoundExceptionエラーが発生しています。

何か微妙なものが欠けているか、私の考えが完全に間違っているか (間違った psr-0 dir 構造)、または作曲家の自動ロードなどを介してのみこれを行う必要があります

いずれにせよ、助けていただければ幸いです。

ありがとうございました

0 投票する
0 に答える
2387 参照

php - 連想配列インデックスの PSR-2 標準とは (および、クエリから直接取得する場合の正しい命名方法とは)

連想配列インデックスの PSR-2 標準は何ですか? 一貫性を保つために、キャメルケースを想定しますが、次のようなケースを考えてみましょう (私は Laravel 4+ を使用しています):

$rowアンダースコア付きの配列インデックスが含まれるようになりました (snake_case) 。あなたならどうしますか?

クエリからそれらをフォーマットするために必要な余分な作業を行って、配列インデックスにアンダースコアを付けることは決してありませんか? それとも、データベースからプルしている場合にのみこれを許可しますか (おそらく、「これは、クエリから直接得られた指標です」と自分に言い聞かせて正当化します)? また、次のようなインデックスを使用するアプリケーション内の他の場所がある可能性があることも考慮してくださいdata['favoriteColor']。そして、私の他の質問への答えを覚えておいてください: Laravel Eloquent モデルでは、データベースにアンダースコアが含まれていても、キャメルケースを使用してテーブルフィールド名を呼び出しますか?