tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:extensionsと複数クラスの指定

standardControllerと一緒にカスタムコントローラも使用したい場合は、extensionsを使用します。このextensionsは複数のクラスを指定することが可能です。extensionsに複数のクラスを指定した場合の処理順についてちょっと確認してみました。


検証コードです。


複数指定するときはカンマ区切りで指定します。


上の処理で表示できる画面はこんな感じです。
f:id:tyoshikawa1106:20130825234022p:plain


コンストラクタとgetMethod内にSystem.Debugをいれてログを確認してみました。
f:id:tyoshikawa1106:20130825234441p:plain

extensionsで指定したクラス順にコンストラクタが実行され、最後にgetMethodが実行されるのが確認できます。また複数のクラスで同一名のメソッドが存在する場合は最初に指定したクラスのメソッドが実行されるみたいです。


指定順序を変更した際のログはこちらです。
f:id:tyoshikawa1106:20130825234803p:plain


コンストラクタの実行順序と同一名のメソッドで呼ばれる処理が変更されました。ただ、getMethodの実行順は変更されませんでした。これについてはページで上にあるものから実行されるみたいです。


extensionsに複数のコントローラを指定した際の動作はこんな感じです。今まで複数のクラスを指定する必要のあるページを作る機会はなかったのですが、こういうこともできるということなのでちょっと確認してみました。