これは、私が作成しているフレームワークの現在のシステムです。
__get
Coreクラスで定義された関数を介して、既存のクラスの名前を持つ、存在しないプロパティにアクセスする要求に応じてオブジェクトを作成します。Coreクラスはすべてのクラスを拡張します。
したがって、次のように機能します。
class Someclass extends Core
{
public function classmethod()
{
$this->otherclass->method();
}
}
これは、私が望むとおりに機能します。ただし、このシステムを使用してオブジェクトのプロパティを編集/作成する方法が(多くのフラストレーションの後で)わかりません。
したがって、このようなものは機能しません。
$this->view->somevar = "newvalue"; // this doesn't work.
__set関数で何かしなければならないと思いますが、わかりませんでした。
この問題に取り組む方法について、次の提案を受けました。
依存性注入、名前空間、シングルトンパターン。
これらのパターンの1つを使用して、私がやろうとしていることを実装する方法を見てみたいと思います。
単純な問題を解決するためにどちらを選択するかわかりません。他のクラスのオブジェクトを使用するため、__constructのパラメーターに何も入れたり、グローバル変数を使用したりする必要はありません。
使ってます__autoload.
私はあなたの助けを借りてこの問題に取り組むことができると思います。