4D 20 R9では、開発者が$4dのオブジェクトコンテキストを定義し、特定の機能のみを公開できるようにする新しいコマンドが導入されました。以前は、4Dを使用することは、ウェブ領域に4Dのメソッドを公開することでしたが、今は、代わりにクラス関数を定義して使用することができます。この改善により、4D機能をWebエリアに統合する際の整理、カプセル化、セキュリティが向上します。
WA SET CONTEXTによる特定メソッドへのアクセス制限
新しい WA SET CONTEXT コマンドを使用すると、開発者は4Dで許可された機能のみを含むオブジェクトを設定できます。
例えば、ウェブ領域のコンテキストを次のように設定します:
var $myWAObject:=cs.WAFunctions.new()
WA SET CONTEXT ( * ; "MyWebArea"; $myWAObject)
でWAFunctions :
Function next()
// Some code here
Function previous()
// Some code here
Function current()
// Some code here
MyWebArea “領域で使用可能な$4d javascript関数は次のものだけです:
- $4d.next()
- $4d.previous()
- $4d.current()
同じように、既存のプロジェクトのメソッドを使用したい場合は、オブジェクトにカプセル化し、WA SET CONTEXT コマンドに渡します:
var $context:={}
$context.myNextMethod:=Formula(myNextMethod)
$context.myPreviousMethod:=Formula(myPreviousMethod)
$context.myCurrentMethod:=Formula(myCurrentMethod)
WA SET CONTEXT(*; "myWebArea"; $context)
とすると、”MyWebArea “で使用可能な$4d javascript関数は次のようになります:
- “MyWebArea “内で使用可能な$4d javascript関数は次のようになります。
- $4d.myPreviousMethod()
- $4d.myCurrentMethod()
ウェブページは以前と同じように実行されますが、この3つのメソッドだけが呼び出されるようになります。
結論
この新しいコマンドで、4D はあなたのウェブ領域で $4d がどのように動作するかを、よりよくコントロールできるようになりました。選択した機能のみにアクセスを制限することができるようになり、アプリをより安全で整理されたものにすることができます。さらに、$4dでクラスメソッドを使用することで、コードをすっきりさせ、管理しやすくなります。
もっと詳しく知りたいですか?こちらの公式ドキュメントをご覧ください。