Com 4D 20 R9, 4D introduz novos comandos que permitem aos desenvolvedores definir um contexto de objeto para $4d, garantindo que apenas funções específicas sejam expostas. Anteriormente, usar $4d significava expor métodos 4D para a área web, mas agora, pode definir e usar funções de classe. Esta melhoria permite uma melhor organização, encapsulamento e segurança ao integrar funcionalidades 4D em áreas web.
Limitando o acesso a métodos específicos com WA SET CONTEXT
Com o novo comando WA SET CONTEXT os desenvolvedores podem definir um objeto contendo apenas as funções permitidas para $4d.
Por exemplo, se o usuário definir o contexto de uma área da Web com:
var $myWAObject:=cs.WAFunctions.new()
WA SET CONTEXT ( * ; "MyWebArea"; $myWAObject)
com a classe WAFunctions:
Function next()
// coloque código
Function previous()
// coloque código
Function current()
// coloque código
As únicas funções javascript de $4d disponíveis na área “MyWebArea” são:
- $4d.next()
- $4d.previous()
- $4d.atual()
Da mesma forma, se quiser permitir a utilização de alguns métodos de projeto existentes, pode encapsulá-los num objeto e passá-lo para o comando WA SET CONTEXT :
var $context:={}
$context.myNextMethod:=Formula(myNextMethod)
$context.myPreviousMethod:=Formula(myPreviousMethod)
$context.myCurrentMethod:=Formula(myCurrentMethod)
WA SET CONTEXT(*; "myWebArea"; $context)
e as únicas funções javascript do $4d disponíveis na “MyWebArea” serão:
- $4d.myNextMethod()
- $4d.myPreviousMethod()
- $4d.myCurrentMethod()
As suas páginas Web serão executadas como antes, mas agora tem a certeza de que apenas estes 3 métodos podem ser chamados.
Conclusão
Com esse novo comando, 4D lhe dá melhor controle sobre como $4d trabalha em suas áreas web. Agora pode limitar o acesso apenas às funções escolhidas, tornando sua aplicação mais segura e organizada. Além disso, usar métodos de classe com $4d ajuda a manter seu código mais limpo e fácil de gerenciar.
Quer saber mais? Consulte a documentação oficial aqui.
De momento, não é possível deixar comentários nesta publicação.