ホームページ >バックエンド開発 >PHPチュートリアル >Yii2 の詳細な学習 -- yiibaseObject クラス、yii2 -- yii_PHP チュートリアル
Yii2 のほとんどのクラスは yiibaseObject から継承していると前に述べましたが、今日はこのクラスを見てみましょう。
オブジェクトは属性の機能を実装する基本クラスであり、その基本的な内容は次のとおりです。 リーリー
詳細なアノテーションを確認したい場合は、https://github.com/ReadCode/yii2-2.0.3-annotated/blob/master/framework/base/Object.phpにアクセスしてください上記の内容から、Object クラスが __get メソッドと __set メソッドをオーバーライドしていることがわかります。これら 2 つのメソッドを詳しく見てみましょう。 リーリー
上記のコードに基づくと、Object オブジェクトの特定のプロパティにアクセスすると、Yii が
get property name() という名前の関数を呼び出すことがわかります。たとえば、SomeObject->Fooは、SomeObject->getFoo()を自動的に呼び出します。 プロパティが変更されると、対応するセッター関数が呼び出されます。 たとえば、 SomeObject->Foo = $someValue は、SomeObject->setFoo($someValue) を自動的に呼び出します。 SomeObject の Foo を例に挙げます。 getFoo() メソッドのみが存在する場合、それは読み取り専用です。両方のメソッドが存在する場合にのみ読み取り可能になります。そして書き込み可能。
注意すべき点は、オブジェクトの存在しないメンバー変数を読み書きする場合にのみ、
__get() __set() が自動的に呼び出されることです。 Foo がパブリック プロパティの場合、__get() メソッドと __set() メソッドを経由しません。
したがって、通常、プロパティはプライベートです。例:リーリー get メソッドと set メソッドで特別な処理を行うこともできます。
__get() __set() に加えて、yiibaseObject は属性の使用を容易にする次のメソッドも提供します。
Yii2 ソースコードに興味のある学生は、yii2-2.0.3-annotated プロジェクトに注目してください。Yii2 ソースコードに関する多くのコメントが追加されており、今後も追加され続ける予定です。
興味のある学生も参加して、Yii2 ソースコードに関するコメントを送信できます。