0

定義上、特性はクラスを拡張できないことは理解していますが、何らかの回避策があるかどうか疑問に思っています。

私の状況:

私はパッケージ Revisionable を作成しました。最初の化身は、 Laravelsベースの Eloquent クラスを拡張したモデルから拡張したクラスでしたが、時間の経過とともに、これをトレイトに変更するという多くの要求があったため、人々はuse改訂可能になり、独自の基本クラスを拡張できます。

現在、拡張可能なクラスとトレイトの両方を許可すると考えることができるのは、両方をファイル全体として提供することだけです。つまり、コード全体を2つのファイルで繰り返しているため、後で問題が発生しやすくなります。 .

神であるファイルを1つ持つことができ、他のファイルがそれに依存している解決策を誰かが知っているかどうか疑問に思っています。

ルール

  • PHP 5.3 のパッケージの既存のユーザーは特性にアクセスできないため、既存のクラスは特性を使用できません。
4

2 に答える 2