あなたがやっていることは、実行中のオブジェクトを追跡することだと思いますか?あなたの最終目標はここにはっきりとはっきりしていません。
おそらく、実行時にReflectionClassを探していますか?クラスが存在するかどうか、拡張クラスが何であるかを判断できます。
あなたが目指しているように聞こえるのは、使用されているオブジェクトを追跡するオブジェクトファクトリです。シングルトン、ファクトリ、および静的メンバー関数/変数の概念を参照してください。このためとして
:クラスBのコンストラクタをオーバーライドする場合
class A
{
public function __construct()
{ print "A has been called";
}
}
、Aのコンストラクタを呼び出すことはないだろう。例:Bは、多くの方法のうちの1つのインスタンスである場合、コードでただし
class B extends A
{
public function __construct()
{ print "B has been called";
// parent::__construct(); /// would print out A has been called
}
}
、あなたは確認することができます:それは多くを助けている場合
function doSomethingWithA(A $a)....
function doSmoethingWithA($a)
{
if($a instanceof A)
{
// blah
}
}
は知ってはいけません。
私がまだそのトラックにいなかったら、それは実際に役立つでしょう。ありがとう!私は必要なことをするための他の方法を模索しています。私はSqoolと呼ばれるデータベース抽象化レイヤーを構築しています。それは、ユーザーが単一のクラスを作成して使用することができて本当にうれしいです。問題は、誰かが少なくとも1つのオブジェクトを既にインスタンス化している場合、基礎となる「sqoolクラス」(テーブル)が存在することだけを知ることです。私がこれを解決することを計画している方法は、ユーザーがまだクラスを認識していない場合に呼び出すことができる関数(標準名)を作成させることです。興味がある方はhttp://tinyurl.com/o3tz2nをチェックしてください –