Apesar do ColdFusion não ser exatamente uma linguagem de programação, mas sim um tipo de framework de desenvolvimento Java, ele funciona como uma linguagem de programação, tendo seus comandos muito parecidos com as demais principais linguagens do mercado.
O ColdFusion tem muita integração com o Java, pois é interpretada por um motor que traduz o código CF para Java. Existem inclusive formas de incluir programação Java no código CF. Talvez abordaremos esse tema em artigos futuros.
A sigla do ColdFusion é CF, portanto nessa "linguagem", tudo que acompanha essa sigla é interpretado pelo motor do ColdFusion como scripts de programação da linguagem.
A sintaxe do ColdFusion é muito simples, por sinal, trazendo um mix entre tags e comandos de lógica. Algumas coisas na forma de escrever programação CF se assemelham muito com HTML, tendo atributos de tag, abertura e fechamento de tags, ou instâncias em uma única linha onde não exige fechamento com uma tag de fechamento, e incluindo a lógica de programação propriamente dita nos "nomes" das tags.
Vejamos como apresentamos algo em tela com o ColdFusion:
<cfoutput> Olá ColdFusion! </cfoutput>
O comando output serve para printar na tela qualquer tipo de texto. Acompanhado do prefixo CF, o motor do ColdFusion interpreta que esta tag não é uma tag HTML e processa o resultado do comando.
A instância de variáveis no ColdFusion funciona com o comando SET:
<cfset saudacao = "Olá ColdFusion!">
E então podemos apresentar o valor da variável com uso do cfoutput:
<cfset saudacao = "Olá ColdFusion!"> <cfoutput> #saudacao# </cfoutput>
Note que colocamos o caractere de cerquilha antes e depois da variável. É dessa forma que o comando cfoutput interpreta que o texto entre a abertura e fechamento da tag é uma variável.
No ColdFusion também é possível trabalhar com arrays:
<cfset novoArray = ['teste1', 'teste2']>
No quesito da instância de arrays, o ColdFusion não se difere tanto das demais linguagens, mas na forma de acessar os valores do array sim:
<cfset novoArray = ['teste1', 'teste2']> <cfoutput> O valor do array é: #novoArray[1]# </cfoutput>
Aparentemente nada muito novo nessa abordagem, mas acessei o índice 1 de forma proposital. O resultado desse código será algo como:
O valor do array é: teste1
Exatamente! Se você está atento ao que estamos estudando aqui, você percebeu logo de cara que o valor apresentado foi o primeiro, e não o segundo, como comumente acontece nas demais linguagens de programação.
Em ColdFusion, arrays de índices numéricos (não objetos, com índices "associativos") se iniciam sempre em 1, e não com zero como nas demais linguagens.
Ao tentar acessar o índice zero de um array no ColdFusion, será retornado um erro "The element at position 0 of array variable cannot be found".
Vejamos então a instância de um IF em ColdFusion:
<cfif 1 eq 1> //Faça algo caso verdadeiro </cfif>
O termo "1 eq 1" é a condição lógica para o IF, onde verificamos se "1 é igual a 1", para que assim o resultado da expressão retorne TRUE;
O termo "EQ" significa equals ("igual a" em tradução do inglês). É utilizado quando desejamos verificar se um termo é igual ao outro termo;
Para saber mais sobre IF, ELSE e ELSEIF, dê uma olhada NESTE ARTIGO.
E para entender mais sobre os Operadores Condicionais, dê uma olhada NESTE ARTIGO.
Vejamos agora como ficaria um IF com ELSE em ColdFusion:
<cfif 1 eq 1> //Faça algo caso verdadeiro </cfelse> //Faça algo caso falso </cfif>
Podemos ver que o comando cfelse entra "no meio" do comando IF, e não há tag de fechamento. O fechamento do ELSE é o próprio fechamento do IF.
Nem todos os comandos do ColdFusion são os mesmos das demais linguagens acompanhados de um CF como prefixo, mas como é de esperar, existem comandos do ColdFusion que suprem a necessidade por comandos existentes nas demais linguages. É o caso do cfloop que tem uma sintaxe parecida com o loop for das demais linguagens:
<cfloop index="i" from="1" to="5"> <cfoutput>Esta é a linha #i# do laço de repetição<br></cfoutput> </cfloop>
Desta vez podemos ver que o comando acompanha alguns atributos:
O atributo index instancia a variável que receberá o valor de índice da linha durante a execução do laço de repetição;
O atributo from determina a partir de qual índice o laço de repetição iniciará a execução;
O atributo to determina o último índice de iteração do laço de repetição;
O comando acima terá como resultado algo parecido com:
Esta é a linha 1 do laço de repetição Esta é a linha 2 do laço de repetição Esta é a linha 3 do laço de repetição Esta é a linha 4 do laço de repetição Esta é a linha 5 do laço de repetição
Para saber mais sobre laços de repetição no ColdFusion, dê uma olhada NESTE ARTIGO.
O intuito deste artigo era dar uma leve introdução na interpretação de códigos ColdFusion. Nos próximos artigos eu abordarei com mais profundidade as estruturas condicionais com if, else, elseif, switch e laços de repetição.