私は簡単なPHPフレームワークを書いています。メソッドやプロパティがプライベートかパブリックかどうかを確認するには、より良い方法が必要です。現在、Reflectionクラスを使用していますが、ほぼすべてのプロパティアクセスで必要です。Reflectionなしでメソッドまたはプロパティの可視性をチェックする方法は?
魔法のためには__get
が必要です。getTestProperty()
がある場合は、$object->testProperty
に電話することができます。
これは(パフォーマンスのために)これを行う別の方法をお探しです。より速い可能性はありますか?
することができます - ブールmethod_exists(class_name_or_object、METHOD_NAMEは) - メソッドは(公開、さらには保護されており、プライベート)のどちらか偽 配列get_class_methods(class_name_or_objectを)存在する場合はtrueを返しますそれがなぜ必要なのか説明してください。あなたのオブジェクトは、他のオブジェクトの可視性を照会する必要はありません。オブジェクトにパブリックAPIが保証されていることを確認するには、インターフェイスを使用します。 – Gordon
私は、この情報を明示的に決定したいと思ったら、私がリファクタリングして、どのように問題に近づいているのかを変える必要があることを知りました。 OOPはインタフェースに関するものです。あなたは何かにアクセスするか、アクセスしないかのどちらかです。カーテンの後ろにあるメソッド/プロパティの詳細を気にする必要はありません。 – rdlowrey
私はそのオブジェクトにpublicメソッド 'getTestProperty()'があれば '$ object-> testProperty'を得ることができるマジック__getのために必要です。//質問を編集しました –