Visualforce とは?
Visualforce は、Lightning プラットフォームでネイティブにホストできるカスタムユーザーインターフェースを、開発者が作成できるようにするフレームワークです。Visualforce フレームワークには、HTML に似たタグベースのマークアップ言語が含まれています。また、クエリや保存など、基本的なデータベース操作を非常に簡単に実行できるサーバー側の「標準コントローラー」のセットが含まれています。
カスタム機能を構築する場合には、Visualforce よりも Lightning Web コンポーネントを使用することをお勧めします。Lightning Web コンポーネントは軽量であり、アプリケーションやサイトで卓越したパフォーマンスを発揮します。Visualforce ではなく、Lightning Web Components を使用すべき理由について確認するには、ここをクリックしてください。
Visualforce マークアップ言語では、Visualforce タグのそれぞれが、ページセクション、関連リスト、項目などの概略的または詳細なユーザーインターフェースコンポーネントに対応しています。Visualforce コンポーネントの動作は、標準の Salesforce ページと同じロジックを使用して制御できます。また、開発者が独自のロジックを Apex で記述されたコントローラークラスと関連付けることもできます。
- Visualforce マークアップ
- Visualforce コントローラー
Visualforce マークアップ
Visualforce マークアップは、Visualforce タグ、HTML、Javascript、または 1 つの <apex:page> タグ内に埋め込まれているその他の Web 対応コードで構成されています。マークアップでは、ページに含めるユーザーインターフェースコンポーネントとその表示方法を定義します。
Visualforce コントローラー
Visualforce コントローラーは命令セットの一種であり、関連する Visualforce マークアップに指定されたコンポーネントをユーザーが操作したときの動作を制御します。操作の 1 つに、ユーザーによるボタンまたはリンクのクリックがあります。コントローラーを使用すると、ページに表示されるデータにアクセスでき、また、コンポーネントの動作を変更できます。
-
標準コントローラーは、標準の Salesforce ページで使用されているものと同じ機能およびロジックで構成されます。たとえば、標準取引先コントローラーを使用する場合、Visualforce ページで [保存] ボタンをクリックした場合、標準の取引先編集ページで [保存] をクリックした場合と同じ動作が行われます。
ページで標準コントローラーを使用した場合に、ユーザーにそのオブジェクトへのアクセス権がないと、アクセス権がないというエラーメッセージがページに表示されます。このエラーは、オブジェクトへのユーザーのアクセシビリティを確認し、コンポーネントを適切に表示することで解決できます。
- 標準リストコントローラーでは、一連のレコードを表示または操作できる Visualforce ページを作成できます。レコードセットを使用する既存の Salesforce ページの例として、リストページ、関連リスト、一括アクションページなどがあります。
-
カスタムコントローラーは Apex で記述されるクラスで、標準コントローラーを使用せずにすべてのページのロジックを実装します。カスタムコントローラーを使用する場合、新しいナビゲーション要素または動作を定義できますが、標準コントローラーにすでに定義された機能も再実装する必要があります。
その他の Apex クラスと同様に、カスタムコントローラー全体はシステムモードで実行されます。このモードでは現在のユーザーのオブジェクトと項目レベルの権限は無視されます。カスタムコントローラー内で、ユーザープロファイルを用いてアクセスするか否かを独自に決定することができます。
-
コントローラー拡張は、Apex で記述されるクラスで、標準コントローラーまたはカスタムコントローラーの動作を追加するか、動作を上書きします。拡張を使用すれば、独自のカスタムロジックを追加するだけでなく、別のコントローラーの機能も使用できます。
標準コントローラーは、ユーザーモードで実行されます。このモードでは現在のユーザーの権限、項目レベルのセキュリティ、共有ルールが適用されます。標準のコントローラーを拡張することで、ユーザー権限が適用される Visualforce ページを作成できます。拡張クラスはシステムモードで実行しますが、標準コントローラーはユーザーモードで実行します。カスタムコントローラーと同様、ユーザープロファイルを参照してプログラムでアクセスさせるか否かを指定できます。
