0

いくつかの抽象クラスを含む小さな PHP エンジンをコーディングしました。エンジンのユーザーは、これらの抽象クラスのサブクラスを実装し、それらのサブクラスをエンジンに提供する必要があります。エンジンは、これらのサブクラスのインスタンスを作成および操作できる必要があるため、ユーザーは単にインスタンスを作成してエンジンに渡すことはできません。

そのため、ユーザーがサブクラスをエンジンに渡す方法が必要です。明らかな方法の 1 つは、これらのサブクラスに特定の名前を付けて特定のディレクトリに配置するようにユーザーに強制することですが、それはどういうわけか洗練されていないように思えます。PHP がクラスを変数に格納できることを知っていたので、最初に試みたのは、クラスを定数に格納することでしたdefine。そのため、ユーザーがサブクラスの名前とパスを入力するいくつかの s を含むファイルを作成しました。それはうまくいきませんでした - PHP はクラスを定数に保存できず、変数だけに保存​​できるようです。

だから今、私は同じアプローチを試みていますが、定数の代わりに変数を使用しています。というファイルがUserIncludes.lib.phpあり、ユーザーは 2 つの変数をサブクラスの名前に設定する必要があります。次に、これらの変数を使用して、エンジンのコード全体でこれらのサブクラスを呼び出します。特にキーワードを使用して変数を必要とするすべての関数に変数をインポートする必要がありglobal、エンジンの事務的および精神的負荷が増加するため、これが良いシステムであるかどうかはわかりません。

では、PHP でこの種のことを行うためのベスト プラクティスは何ですか? それはかなり一般的なタスクでなければならないようです。

4

1 に答える 1

0

適切なオートロード機能で名前空間を使用するだけです。

このようにして、ファイルシステムは単なる透過的なレイヤーになり、命名規則のみに依存します-実際には「これらのサブクラスに特定の名前を付けて特定のディレクトリに配置するようにユーザーに強制する」ですが、非常にうまく機能します。

于 2012-11-20T11:50:41.153 に答える