8

私は他のライブラリを統合できるようにしたいフレームワークを構築しています (これは非常に単純化されています。代わりに既存のフレームワークを使用することはお勧めしません。役に立ちません)。

PSR-0 の推奨事項では、各サブ名前空間内のすべてのファイルを独自の特定のディレクトリに含めることを提案しています。フレームワークのユーザーにとって複雑さを軽減するために、すべてを 1 つの名前空間に保持し、ファイルをディレクトリに整理したいと考えています。

PHP ライブラリが独自のオートローダをspl_register_autoload()に登録できる場合、このディレクトリ構造を順守することが不可欠なのはなぜでしょうか? PSR-0 を単純に回避し、自分のクラスに独自のオートローダーを使用してから、(たとえば) Symfony のオートローダーを使用する可能性のある Symfony クラスに使用することは実行可能/許可されますか?

4

2 に答える 2

6

標準に従うことを強制する人は誰もいません。もちろん、独自のオートローダーを作成して使用することもできます。

この仕様は、ライブラリを理解しやすくするために作成された可能性が高く、すべてのコードが同じ構造を使用している場合、特定のクラスを見つけるためにどこに行けば誰でもすぐにわかるはずであるという考えに基づいています。

以下の規格には、次のような特定の利点があります。

  • 標準の知識がある人は、コードの使用方法をすでに知っています。
  • 標準準拠のツールは、準拠しているコード (IDE プラグインなど) で動作するように作成できます。
  • 標準準拠を前提とするコードは、独自のコード用に特別に作成されたものではない場合でも、準拠しているすべてのコードで既に使用できます (たとえば、サード パーティのオートローダーはコードをロードでき、独自のオートローダーはサード パーティのコードをロードできる必要があります)。パーティーコード)

不利な点は、標準が気に入らない可能性があることです。その場合は、それに従うかどうかを決定する際に、利点も考慮に入れる必要があります。

于 2012-12-03T21:53:11.727 に答える
1

さらに、他のライブラリが標準に準拠している場合、クラスにオートローダーを使用するのではなく、単一のオートローダーを使用して複数のライブラリからクラスをロードすることができます。そのクラス。

オートローダーが PSR に準拠しており、他のライブラリのディレクトリ構造も準拠している限り、1 つのオートローダーの使用に固執することができます。

于 2012-12-03T21:56:06.840 に答える