ColdFusion – Aprender a programar
CFML – Parte 2 – Variáveis
Olá pessoal, vamos então para a 2ª parte sobre ColdFusion ... nesta parte vamos aprender a trabalhar com variáveis, os seus tipos e algumas melhores práticas.
Caso o seu servidor do RAILO esteja desligado, poderá iniciá-lo desta forma: 1º - INICIAR > EXECUTAR > services.msc > OK. 2º - Localize o serviço RAILO 2.0 SERVER, seleccione-o e clique na setinha verde lá em cima chamada INICIAR O SERVIÇO. 3º - Aguarde até que o serviço seja iniciado.
Introdução sobre variáveis e tipos. O ColdFusion é uma linguagem de tipagem fraca, ou seja, o tipo da variável não precisa ser declarado, o utilizador apenas lança o valor da variável e ele automaticamente já “sabe” de qual tipo ela é.
Outro detalhe sobre as variáveis em CF, é que o CF não é case sensitive, ou seja, não faz distinção entre MAIÚSCULAS e minúsculas. Em CF, uma variável chamada NOME pode ser chamada por NOME, nome, nOme, nomE, etc. Contanto que o nome da variável e o seu alvo estejam correctos, ele encontra-a, independente da utilização ou não de letras maiúsculas no seu nome.
OBS1: Comentários – Os comentários em CF são criados desta forma: <!--- comentario ---> OBS2: Comentários são partes de texto no código que servem para explicar uma determinada parte.
1º Exemplo. Vamos criar uma mensagem de boas vindas utilizando algumas variáveis.
Crie um novo documento com o nome de P02_variveis.cfm para este exemplo.
<!--- a linha abaixo irá criar uma variável de nome MSG com o valor “Bem-vindo(a) ao: ”---> <cfset variables.msg = 'Bem-vindo(a) ao: '>
<!--- a linha abaixo irá criar uma variável de nome SITE com o valor “Pplware”---> <cfset site = 'Pplware'>
<!--- a linha abaixo irá criar uma variável de nome ANO com o valor “2007”---> <cfset ano = 2007>
Como puderam perceber, a criação de variáveis e atribuições de valores é feita de forma muito prática. Outro detalhe é o uso de ““s. - Caso o valor da variável seja numérico, não se utiliza ‘’s. - Caso o valor da variável seja um tipo de texto, utiliza-se ‘’s.
OBS: Utilize ‘ ’ (aspas simples) ou aparecerá um ecrã de erro. Ao contrário do servidor ColdFusion oficial, o Railo não suporta “ ” (aspas duplas) – Ou assim fizeram de propósito.
Ok, já criamos as variáveis, e agora, como mostrá-las? Em CF, existe uma tag que devemos utilizar para mostrar conteúdo dinâmico, esta tag é a CFOUTPUT e, utilizamos desta forma:
<!--- o exemplo abaixo irá mostrar uma mensagem de boas vindas utilizando as variáveis criadas no exemplo acima ---> <cfoutput> #msg# #site# ! </cfoutput>
O resultado será:
Para correr a página utilize o seguinte endereço (caso esteja a seguir os passos da forma que escrevi): http://localhost:8600/Pplware/P02_variveis.cfm
O código completo é este aqui:
<!--- a linha abaixo irá criar uma variável de nome MSG com o valor “Bem-vindo(a) ao: ”--->
<cfset variables.msg = 'Bem-vindo(a) ao: '>
<!--- a linha abaixo irá criar uma variável de nome SITE com o valor “Pplware”--->
<cfset site = 'Pplware'>
<!--- a linha abaixo irá criar uma variável de nome ANO com o valor “2007”--->
<cfset ano = 2007>
<cfoutput>
#msg# #site# !
</cfoutput>
Concatenação de Variáveis. Para concatenar (juntar) variáveis em CF é tão fácil quanto criá-las. Crie um novo ficheiro chamado P02_variveis2.cfm <cfset nome = 'Fulano'> <cfset sobrenome = 'de Tal'> <cfset nome_completo = nome & ' ' & sobrenome> <cfoutput> Meu nome é: #nome_completo# </cfoutput>
Resultado:
Trabalhando com operações matemáticas e variáveis
- Soma, subtracção, multiplicação, divisão e múltiplas operações.
Crie um novo ficheiro chamado P2operacoes.cfm e coloque o código abaixo:
<cfset v1 = 10> <cfset v2 = 15> <cfset v3 = 8>
<!--- Soma ---> <cfset soma = v1 + v2 + v3>
<!--- Subtracção ---> <cfset sub = v1 - v2 - v3>
<!--- Multiplicação ---> <cfset multi = v1 * v2 * v3>
<!--- Divisão ---> <cfset divi = v1 / v2 / v3>
<strong>Resultados:</strong><br> <cfoutput> Soma: #soma#<br> Subtração: #sub#<br> Multiplicação: #multi#<br> Divisão: #divi# </cfoutput>
Resultado:
Acredito que não sejam necessários maiores comentários sobre esta parte acima... primeiro criamos 3 variáveis com valores diferentes, de seguida criamos variáveis para as operações contendo os valores e as operações e por último mostramos o resultado.
Como podem ter percebido, o número da divisão ficou enorme. Caso queiram, podem limitar a quantidade de casas a serem mostradas.
Ex.: (pode ser colocado no final do código acima).
<cfset numero_longo = 85.654325752> <cfoutput> Número Longo Original: #numero_longo#<br> Novo Número Longo: #LSNumberFormat(numero_longo,'__.__')# </cfoutput>
Resultado:
Alvos (targets) de Variáveis Em CF recomenda-se utilizar um alvo nas variáveis para obter melhor performance e deixar o código mais “legível”.
Utilizar um alvo nas variáveis é nada mais do que colocar o nome do objectivo antes do nome da variável, por exemplo:
Variável local > variables.nome Variável de aplicação > Application.nome Variável de sessão > Session.nome Variável de Request > request.nome
Nos nossos exemplos utilizamos apenas variáveis LOCAIS, ou seja, para deixar a sua aplicação mais produtiva e de acordo com as Melhores Práticas, refaça (ou corrija) os exemplos adicionando “variables. “ no começo de todas as variáveis criadas e onde as mostra.
Ex: nome > variables.nome
Nos próximos exemplos irei mostrar como utilizar os outros alvos (targets), mas, isso é assunto mais para frente.
Na próxima “aula” irei mostrar como enviar e receber variáveis de uma página para a outra via URL e FORM e o início de operações lógicas. Irei também ensinar como configurar um site para os nossos exemplos no Dreamweaver 8 (serve para outras versões) para facilitar a execução dos códigos.
Ficheiros usados nesta segunda parte, ver aqui.
Até a próxima!
Este artigo tem mais de um ano
Parabéns pelo artigo. Está muito bom.
Apenas senti falta das regras de nomenclatura das variáveis. Poderias dizer quais são?
Esta nice.
—
Vitor, não sabia para que email te mandar o artigo então mandei para um email teu no gmail, o que tinha usado para te mandar o artigo sobre licenças.
CoolMaster
Esqueci de um detalhe. Você disse que CF é uma linguagem de tipificação fraca. Outras linguagens semelhante, mesmo tempo tipificação fraca, permiti tipificar a variável, dessa forma tornando tipificação forte (popularmente chamada de tipificação forte opcional).
CF permiti tipificar variável caso queira fazer??
Sobre o artigo: talvez possa ocorrer algum erro ao mostrar as varíaveis devido à ausência do escopo “variables” dentro do cfoutput.. enfim, é só colocar caso dê erro.
Evandro:
1 – não existe exatamente uma “regra” para nomear variáveis em CFML, isso vai variar mais de empresa para empresa, mas, geralmente utilizam-se estas regras:
– variáveis locais: variables.nome
– variáveis de sessão: Session.nome
– variáveis de aplicação: Application.nome
– variáveis de requisição (vindas de componentes): request.nome
– nomes de consultas em bancos geralmente são feitas assim: qrNomeConsulta
ou qry_nome_consulta (eu prefiro da 1a forma)…
– nomes de funções: func_nome_funcao
– nomes de argumentos para funções: arg_nome_argumento
Quanto à tipagem:
Até onde eu saiba, não há a possibilidade de “forçar” seu tipo em CF… somente se declara no caso de Array… de resto, não há necessidade/possibilidade…
Muito bom esta iniciativa CF. Quando comecei a programar era em clipper. Hoje trabalho com PHP, AS2, AS3, XML, SQL, JS para uma boa integração do Flash e AIR com o mundo web e outros aplicativos. Vou entrar em “parafuso” lol. Mais uma vez, parabéns a todos!
@Marcos, o que quis dizer com relação a regra é que todas as linguagens de programação existem regras de nomeação. Não relativo a nomenclatura que uma determina empresa assume para suas variáveis.
Digamos assim, o CF permiti iniciar o nome da variável com números? Aceita caracteres especiais? isso são regras para nomeação de variáveis.
nrocha sim está cá. Vou tratar dele e publicar assim que esteja pronto. Talvez da quinta seja o ideal. Vamos ver. Desde já o meu agradecimento.
Evandro:
aaahhh sim… bom.. nesse caso, sim, deve-se respeitar esta regra de não utilizar números para iniciar uma variável, nem caracteres especiais, palavras reservadas, espaços…
Olá Marcos e restantes leitores,
boa matéria
Só para completar poderia dizer que variables é opcional (melhor usar mas não necessário) já por exemplo session é obrigatório quando queremos trabalhar com sessões.
Cumprimentos
César Oliveira
César Oliveira, pedia-te que não metesses esses links todos nos comentários, assim tenho que permanentemente estar a retirar do spam os teus comments.
Sempre que um comentário tem mais que um link estes vão parar ao spam.
Caros,
Apenas um reparo que acaba por ser uma limitação do html e da representação de caracteres.
Onde está escrito “<!–” devem ler “menor; exclamação, menos, menos” e naturalmente na tag oposta, onde está escrito “–>” devem ler “menos, menos, maior”
César:
sim sim… acho que eu expliquei isso na 1a parte… que ‘variables’ e ‘request’ são mais formas de ‘organizar’ o código e facilitar o entendimento de onde as variáveis estão indo e vindo.
Interessante, embora o CF seja uma tecnologia moribunda. Investir muito tempo em CF nao é uma boa ideia para 2008-2010 (vejam a quantidade de anuncios que pedem CF skills)