ColdFusion – Aprender a programar

13 Comentários

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!

Partilhar:
Tags:

Comentários

13

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Evandro
    Evandro

    Parabéns pelo artigo. Está muito bom.
    Apenas senti falta das regras de nomenclatura das variáveis. Poderias dizer quais são?

  2. Avatar de nrocha

    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

  3. Avatar de Evandro
    Evandro

    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??

  4. Avatar de Marcos
    Marcos

    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…

  5. Avatar de Cordelima.com

    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!

  6. Avatar de Evandro
    Evandro

    @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.

  7. Avatar de Vítor M.

    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.

  8. Avatar de Marcos
    Marcos

    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…

  9. Avatar de César Oliveira

    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

  10. Avatar de Vítor M.

    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.

  11. Avatar de Pedro Simões

    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”

  12. Avatar de Marcos
    Marcos

    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.

  13. Avatar de Spiff
    Spiff

    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)