4

PSR-2 標準に従って理解したように、クラスを含むディレクトリ名は大文字にする必要があります。しかし、ディレクトリにスタイルやスクリプトなどの他のファイルも含まれている場合はどうすればよいでしょうか?

プラグイン ディレクトリがあるとします。各プラグインには、テンプレートやその他のものを含めることができます。

plugins
  PluginName // lowercase?
    PluginName.php // Contains base class "PluginName"
    templates
      home.tpl
    css
      css.css
    js
      js.js
  PluginName2
    ....

この構造は正しいですか?

4

2 に答える 2

4

ディレクトリには好きな名前を付けることができます。

ただし、PHP クラスを PSR-0 または PSR-4 で自動ロードする場合は、関連するクラス名の部分が接するディレクトリ名が正確に一致する必要があります。

PSR-2 は、クラス名または名前空間が持つ必要があるケースについて、いかなる仮定も与えず、ルールも与えません。

PSR-1 は第 3 章で次のように述べています。「クラス名は StudlyCaps で宣言する必要があります。」ただし、これはそのようなクラスを含むファイルのファイル名にのみ影響します。PSR-4 オートローディングを使用している場合でも、Name\Space -> directory/for/that/namespaceコードを含むすべてのディレクトリのマップ全体を定義すると、パスで名前空間のどの部分も使用しないようにすることができます。

PSR-1 には名前空間のフォーマットに関する規則がないため、大文字の使用を避けることもできます。そのため、ディレクトリ パスで大文字を使用する必要がなくなります。

名前空間/クラス名をファイルシステムのパスとファイルにマッピングする場合、PSR-0 と PSR-4 の両方の自動読み込みで大文字と小文字が区別されることに注意してください。したがって、最終的には、とにかく大文字と小文字を区別するファイルシステムのレイアウトになります。

また、ほとんどの名前空間も StudlyCaps を使用していることに注意してください。小文字を使用することは珍しいと思います。

于 2015-08-04T19:08:32.613 に答える
1

PHP でどのような構造にするべきかについて、明確に定義された方法はありません。

ディレクトリ名を大文字にする必要さえないと思います。

ただし、プラグインまたは依存関係は、任意のパッケージ マネージャー ( Composer ) で処理できますか?

私が知る限り、あなたの構造は完璧に見えます。

于 2015-08-04T18:45:16.327 に答える