mar
30
2009
1

Aviso

Olá Pessoal,

Por uma série de razões técnicas e médicas (maldita reação alérgica!!!) não consegui postar nos últimos dias. Vou compensar o atraso e mais tarde retomaremos nossa programação normal… :-D

Abraços,
Diego.

mar
23
2009
0

Minicurso PHP: 3ª Parte – Introdução ao PHP: Variáveis, Constantes, Imprimindo dados na tela e Comentários

Olá Pessoal,

Já vimos para que serve o PHP, e o que precisamos para fazê-lo funcionar. Vamos agora adentrar no fantástico mundo da programação Server-Side, usando o PHP como linguagem principal. Todo mundo já está com o PHP funcionando direitinho, né? Ok, então vamos escolher um software para edição de código PHP. Muita gente usa o Dreamweaver como ferramenta de desenvolvimento HTML e CSS, e por isso acaba mantendo o hábito também para o PHP e outras linguagens. Bem, eu não uso o Dreamweaver. Alguns motivos práticos, outros éticos (não é interessante depender de uma ferramenta cuja licença é demasiado cara, me obrigando a pirateá-la) e alguns técnicos. Em resumo, dava pra escrever uma série de artigos sobre o porque não gosto do Dreamweaver, mas esse não é o foco do blog. Quer usar o Dreamweaver? Use. Não faz diferença pro andamento do minicurso. Agora, se quer começar com o pé direito, recomendo em primeiro lugar a minha opção profissional: Aptana Studio. O Aptana é um ótimo editor, ao meu ver melhor que o Dreamweaver, com vários recursos interessantes que fazem bastante diferença conforme sua vida profissional avança, e os projetos tornam-se mais complexos. Além de possuir um ótimo editor de XHTML, CSS e JavaScript (bem superior ao do Dreamweaver), e você pode baixar plugins para trabalhar com outras linguagens: Phyton, Ruby e possui um servidor Ajax. E é gratuito.

Existem outros editores de PHP como PHP Editor, Notepad++, PHP Expert Editor, TSWebEditor, Maguma Studio etc. A decisão é por sua conta. Mas se eu fosse vocês ficaria com o Aptana… :-P

VARIÁVEIS E CONSTANTES

Bem, vamos começar a escrever código PHP!!!! O PHP é uma linguagem a ser embutida em código HTML, ou seja, no servidor misturamos código HTML e PHP numa mesma página. O PHP será interpretado e gerará código HTML, e somente HTML será enviado para o browser. Essa é a lógica de funcionamento dum servidor web. Bem, o HTML funciona na base de etiquetas (tags). E o PHP? Bem, o PHP é uma linguagem de scripts e para ser interpretado corretamente pelo servidor, seus códigos precisam estar entre delimitadores. Veja os delimitadores em funcionamento:

1
2
3
4
<?php
//Tudo o que estiver entre "<?php" e "?>" será interpretado como código PHP a ser processado pelo servidor
echo "Oi Mundo!";
?>

Legal, onde escrever os scripts já sabemos. Agora, como declarar variáveis em PHP? É um procedimento bem simples. Basta escrever $nome_da_variavel = valor. As variáveis em PHP iniciam com um sinal de $, seguido do nome da variável. A nomenclatura de variáveis em PHP segue o padrão de outras linguagens: deve iniciar com letras, não aceita espaços etc. Use sempre nomes sugestivos para as variáveis, evitando futuras dores de cabeça seja no desenvolvimento do aplicativo ou na manutenção do mesmo. Veja o código abaixo:

1
2
3
4
5
6
7
<?php
$nome = "Jonas da Silva";
$emprego = "Estagiário Desenvolvimento";
$salario = 450.00;
$idade = 17;
$maiorIdade = false;
?>

Repararam que todas as variáveis tem nomes claros, que as distinguem de qualquer outra variável do programa? Fica bem mais fácil trabalhar desse jeito. Algumas regras básicas para nomenclatura de variáveis: não use números no início das variáveis, espaços em branco e caracteres especiais; coloque nomes claros e sugestivos, com menos de doze caracteres (legibilidade de código); busque usar letras minúsculas, palavras separadas por “_” ou somente a primeira letra de cada palavra em maiúsculo, se a variável for composta por mais de uma palavra.

Além de variáveis o PHP nos permite trabalhar com CONSTANTES (espaços na memória cujo valor não muda durante a execução do programa, ao contrário das variáveis que possuem valores voláteis). Para usar constantes no PHP precisaremos da função define(”NOME_DA_CONSTANTE”, “Valor_da_Constante”). Escrevemos constantes normalmente em caixa alta. Outro fato importante: os nomes das constantes NÃO são precedidos de $, como nas variáveis. Veja um exemplo de declaração de constantes:

1
2
3
4
<?php
define ("CPMF", 0.05);
define ("LITRO_GASOLINA", 2.37);
?>

É importante que vocês saibam: o PHP é case-sensitive. Ou seja, diferencia letras maiúsculas de minúsculas. Isso quer dizer o que? Na prática é assim: $nome e $Nome não são a mesma coisa. São variáveis completamente diferentes… Se você declara $nome e manda imprimir $Nome, acontecerá um erro, pois $Nome ainda não existe… É preciso ter muito cuidado, pois nomes de funções, variáveis, arrays, constantes etc., todos seguem a mesma regra: há diferença entre caixa alta e baixa. Muita gente se esquece desse pequeno detalhe e gasta horas até descobrir onde está o erro… :-P

Existem casos onde precisaremos de variáveis cujo nome seja modificável em função de uma dada situação. É o que chamamos de variable variables (variáveis variantes). Nada mais é do que usar o conteúdo de uma variável A como nome de uma variável B. Ou seja, se $A = “teste”, a variável B se chamará $teste. Legal né? Na verdade é muito útil em uma série de situações. Vocês verão conforme programarem seus primeiros projetos… Tá, e como usamos variáveis variantes? Simples: basta usar dois $$. Veja o código:

1
2
3
4
5
<?php
$a = "mensagem";
$$a = "Oi mundo, estou usando variáveis variantes";
echo $mensagem; //O valor impresso será: Oi mundo, estou usando variáveis variantes
?>

Outra coisa importante: quando atribuímos um valor de uma variável “$a” à “$b”, criamos um segundo espaço na memória, onde $b é uma variável independente, ainda que possua o mesmo valor de $a, qualquer modificação em $b não alterará em nada o valor de $a. Veja o código a seguir:

1
2
3
4
5
6
7
8
<?php
$a = "Diego";
$b = $a;
$b = "Maria";
echo $a; //imprime Diego
echo "<br />";
echo $b; //imprime Maria - ou seja, qualquer alteração em $b não modifica $a, apesar de termos igualado seus valores na linha 3
?>

E se quisermos relacionar $a e $b de forma que, qualquer mudança em $b reflita em $a, e vice-versa? Ou seja, se eu quiser relacionar as duas variáveis ao mesmo espaço de memória (variáveis são espaços de memória)? É simples, basta adicionar um & antes de atribuir $a à $b. Veja como ficaria o código:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$a = "Diego";
$b = &$a;
$b = "Maria";
echo $a; //imprime Maria
echo "<br />";
echo $b; //imprime Maria - ou seja, qualquer alteração em $b reflete $a, e vice-versa
$a = "João";
echo $a; //imprime João
echo "<br />";
echo $b; //imprime João
?>

IMPRIMINDO DADOS NA TELA

O PHP possui uma série de comandos de saída de dados, ou seja, para imprimir conteúdo na tela do usuário. O primeiro deles você já viu nos códigos acima: é o comando “echo”. Esse comando imprime o conteúdo de uma ou várias constantes e variáveis na tela do usuário. Usamos “echo” praticamente em todas as vezes que precisamos imprimir conteúdo na tela. Veja o código abaixo:

1
2
3
4
5
6
7
<?php
$nome = "Diego Marques";
echo "Seu nome é ", $nome, ".<br />";
echo 5;
define ("CPMF", 0.05);
echo "A CPMF é de ", CPMF;
?>

Podemos imprimir strings na tela do usuário com a função print(). Veja o código:

1
2
3
4
5
<?php
$nome = "Diego Marques";
print($nome);
print("<p>Seja bem vindo!</p>");
?>

A função var_dump() apresenta o conteúdo de uma variável de forma detalhada, apresentando o tipo e o valor da variável. No caso da análise de um array ou objeto, a função imprimirá todas as posições ou atributos, de forma organizada e alinhada. Veja um exemplo:

1
2
3
4
5
6
7
8
<?php
$nome = "Diego";
var_dump($nome);
$sobrenome = " Marques";
var_dump($nome, $sobrenome);
$nomes = array("Huguinho", "Zezinho", "Luisinho");
var_dump($nomes);
?>

A função print_r() possui um comportamento idêntico ao de var_dump: exibir o conteúdo de uma variável de forma detalhada. O único diferencial é: print_r() apresenta o conteúdo em um formato com maior legibilidade, facilitando o trabalho em certos casos. Veja o código abaixo:

1
2
3
4
5
6
7
8
<?php
$nome = "Diego";
print_r($nome);
$sobrenome = " Marques";
print_r($nome, $sobrenome);
$nomes = array("Huguinho", "Zezinho", "Luisinho");
print_r($nomes);
?>

Tanto var_dump() quando print_r() são funções extremamente úteis para debug de código, uma vez que detalham o conteúdo de variáveis para o programador.

COMENTÁRIOS

Assim como em qualquer outra linguagem o PHP admite o uso de comentários, seções do código que não serão interpretadas pelo servidor web, permitindo que o programador faça anotações no próprio código. É importante realizar comentários no código indicando funcionalidades, início e fim de seções, explicações de scripts etc., para que você não se perca em seu script, e facilite o trabalho de futuras manutenções. Veja o código abaixo:

1
2
3
4
5
6
7
8
9
10
<?php
//Esse é um comentário de uma linha no PHP. Todo o conteúdo escrito nessa linha não será interpretado pelo servidor
 
/*
    Esse é o comentários de várias
    linhas no PHP. Todo o conteúdo
    escrito entre os delimitadores não
    será interpretado pelo servidor.
*/
?>
mar
17
2009
1

Gerenciando Arquivos e Diretórios com PHP: Parte 2 – Diretórios e Pastas

Olá Pessoal,

Vamos dar continuidade a parte 1 desse novo tutorial sobre ARQUIVOS e DIRETÓRIOS.

GERENCIANDO DIRETÓRIOS

Agora entramos nas funções do PHP para gerenciamento de pastas, complementando as funções para gerenciamento de arquivos, vistas anteriormente.

Criar e apagar um diretório

Para criar um diretório precisaremos da função mkdir(), onde passaremos como parâmetro o caminho e nome do diretório a ser criado. Ela retorna TRUE em caso de sucesso e FALSE em caso de erro. Veja a função em ação:

1
2
3
4
5
6
7
8
<?php
if (mkdir("repositorio")) {
echo "Diretório criado com sucesso.";
}
else {
echo "Não conseguimos criar o diretório.";
}
?>

Acabamos de criar uma pasta chamada “repositorio” dentro do mesmo nível dos nossos demais arquivos. Aproveite agora para criar um diretório chamado “teste”, dentro da pasta “repositorio”. E aí, coneguiram criar a pasta? Legal! Agora vamos apagar essa pasta! Não, eu não estou de sacanagem! Falo sério. Vamos apagar a pasta “teste” usando a função rmdir(). O parâmetro passado para essa função será o caminho do diretório que queremos apagar. Ela retorna TRUE em caso de sucesso e FALSE em caso de erro. Veja o código:

1
2
3
4
5
6
7
8
<?php
if (rmdir("repositorio/teste")) {
echo "Excluímos o diretório.";
}
else {
echo "Não excluímos o diretório.";
}
?>

Retornar o diretório atual

Precisa saber o nome do diretório do arquivo aberto? A função getcwd() resolve seu problema. Veja o código:

1
2
3
<?php
echo getcwd();
?>

Abrir, listar os itens e fechar um diretório

Abrir um diretório com PHP é algo bem simples. Basta usar a função opendir(), passando o caminho do diretório a ser aberto como parâmetro. A função retorna FALSE em caso de erro, e um resource com um manipulador do diretório, a ser usado por outras funções, em caso de sucesso. Sua aplicação pode ser visualizada abaixo:

1
2
3
4
<?php
$pasta = opendir("repositorio");
closedir($pasta);
?>

A função closedir() fecha um diretório aberto por opendir(). Uma vez aberto o diretório eu quero ter acesso a todos os itens (arquivos e subdiretórios) dentro dele. Para isso uso a função readdir(), passando como parâmetro o resource manipulador de diretório resultante da função opendir(). A função readdir() retorna o nome do próximo arquivo do diretório. Para percorrer todos os itens de um diretório faremos um loop, passando por todos os registros retornados pela função readdir(). Veja o código:

1
2
3
4
5
6
7
8
9
10
<?php
//Abro o diretório do arquivo atual
$pasta = opendir(getcwd());
//Crio um loop para percorrer todos os registros de um diretório
while (($arquivo = readdir($pasta)) !== false) {
    echo $arquivo."<br />";
}
//Fecho o diretório
closedir($pasta);
?>

Bem, para praticar um pouco que tal um exercício? Liste todos os arquivos da pasta atual do seu diretório, e somente para os arquivos com a extensão .txt, adicione um link com a palavra “MOVER” na frente do nome do arquivo (ficaria assim: arquivo.txt – MOVER). Ao clicar em MOVER o usuário dispararia uma função e moveria o arquivo para a pasta “repositorio” que criamos anteriormente. Um bom desafio: usará seus conhecimentos em GET, funções e arquivos (que você acabou de aprender). Boa sorte!

Amanhã fechamos esse tutorial, falando sobre uploads de arquivos. Até lá.

mar
08
2009
2

Aos navegantes

Olá,

Estamos inaugurando o Projetista Digital. Demorou pra sair, mas finalmente estamos no ar. Já fazem dois anos que concebi a idéia do blog, e pelo menos um ano que registrei o domínio. Nesse meio tempo muita coisa mudou: empregos, projetos e perspectivas. Antes eu queria um blog para falar de aspectos conceituais e teóricos da nossa prática profissional. Iria abordar Arquitetura de Informação, Usabilidade e WebStandards. Depois pensei em desenvolver um manual para programadores de interfaces, com forte ênfase em XML, XSLT e afins. Comecei a dar aulas no SENAC-RJ e pude observar de perto as necessidades do iniciante e perceber que eu deveria falar para ele, antes de abordar temas mais complexos. Em sala de aula pude perceber como pequenos gestos e ações, insensíveis ao olhar do técnico, fazem toda a diferença para o iniciante.

Então, como já era de se esperar, o conceito do blog foi totalmente reformatado, e antes que ficasse obsoleto, catei meu sócio e abrimos a porteira… Não tenho a pretensão de eliminar os “sem-noção” que aparecem pela web à fora. Aliás, esse espaço é para quem quer aprender! E aprender é um processo complexo, e em alguns momentos complicado. Pretendemos auxiliar você, não mastigar sua comida e te dar na boquinha. Código pronto não é nossa praia. Se quiser, tem quem te forneça… Não irei te dar uma locadora virtual pronta, mas vamos te ensinar como montar uma – aprendendo tecnologia por tecnologia. Do básico ao avançado.

Não se iniba a postar nos comentários ou enviar um email pra gente: não poderemos responder todas as dúvidas, mas os demais colegas podem contribuir via comentários, e quando várias pessoas tem uma mesma dúvida, fica fácil pra gente perceber a necessidade de escrever um tema sobre o assunto. Bem, é isso. Para vocês não perderem a viagem, fica aí uma série de dois vídeos extremamente interessantes:

Abraços a todos,
Diego.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com