Explicando o PHP para iniciantes

A definição mais rápida e, provavelmente, mais ineficiente para um iniciante seria “PHP é uma linguagem de scripts”.
Mas, afinal, o que é uma linguagem de scripts?
Um script é um conjunto de instruções de programação que são interpretadas em tempo de execução.
É comum os scripts estarem incluídos em ambientes de software mais complexos – nestes casos, seu propósito é melhorar a eficiência do ambiente como um todo ou realizar tarefas rotineiras dentro da aplicação.
De acordo com a Wikipedia, é uma linguagem de programação que suporta código escrito para automatizar a execução de tarefas que poderiam ser realizadas uma a uma por um operador humano.
Alguns autores subdividem as linguagens de script em:

  • Server Side Scripts – que são interpretados no servidor;
  • Client Side Scripts – que são interpretados na aplicação cliente. No caso, a aplicação cliente é o seu navegador.

O PHP é um conhecido exemplo de linguagem server side script, ao passo que o JavaScript é um exemplo de client side script Ambas podem ser inseridas em páginas HTML – e, comumente, o são.
Vamos resumir, aqui, em linhas gerais, as linguagens de programação de scripts da seguinte forma:

  • rodam de dentro de outro programa;
  • não são concebidas para serem compiladas;
  • são de uso simplificado e concebidas para a execução de tarefas simples.

Mas, nem “todo mundo” se encaixa nesta descrição:

  • Há várias linguagens de programação populares (Java, por exemplo) que rodam de dentro de um programa pai, tal como as linguagens de programação de script;
  • As linguagens de programação de script são amplamente usadas, hoje, para realizar tarefas ou construir softwares complexos;
  • Já não se fala mais da vantagem do software já compilado por ser mais rápido, uma vez que a velocidade das máquinas atuais neutralizam esta vantagem.

O PHP, como linguagem de script

À partir da terceira versão, o acrônimo PHP passa a significar PHP Hypertext pre-processor (em inglês). Antes significava Personal Home Pages — a evolução da nomenclatura reflete o quanto a linguagem ampliou seu espectro em relação à Internet e aos problemas que lhe são apresentados. O PHP é apresentado como ferramenta para realizar pelo menos 3 tipos de trabalhos:

  • sites web estáticos
  • sites web dinâmicos
  • aplicações web

Pré-requisitos para desenvolver aplicativos PHP

Enquanto o cliente só precisa ter um navegador para fazer uso de um aplicativo web ou acessar uma página em PHP, do outro lado é necessário ter um servidor PHP, que pode ser instalado localmente.
Dentro de uma página HTML, é possível ter código PHP inserido. Para tanto, basta iniciá-lo com a tag PHP. Veja um exemplo de código PHP:

<?php
   echo "Hello World!";
?>

Note que iniciamos o código com a tag <?php; escrevemos o nosso código e fechamos tudo com a tag ?>. Quando o arquivo é aberto pelo servidor, “ele vai saber” que deve executar o código que estiver entre estas duas tags.

POSTS RELACIONADOS

Alguns pré-requisitos para aprender PHP

Como estamos falando de múltiplas tecnologias, é interessante ter um background em HTML (pelo menos algum conhecimento básico), em bancos de dados e, para realizar tarefas mais complexas, JavaScript e XML.
A figura, abaixo, mostra como o código PHP é entregue ao servidor, que o interpreta e devolve para o navegador, na máquina local, em formato HTML.

PHP, HTML
Clique para ampliar.

O que é um banco de dados relacional?

Um banco de dados é uma aplicação que lhe permite armazenar e obter de volta dados com eficiência. O que o torna relacional é a maneira como os dados são armazenados e organizados no banco de dados.
Quando falamos em banco de dados, aqui, nos referimos a um banco de dados relacional — RDBMS Relational Database Management System.
Em um banco de dados relacional, todos os dados são guardados em tabelas. Estas têm uma estrutura que se repete a cada linha, como você pode observar em uma planilha. São os relacionamentos entre as tabelas que as tornam “relacionais”.

História – antes dos bancos de dados relacionais

Antes da invenção dos bancos de dados relacionais (nos anos 70), havia outros tipos de bancos de dados, tais como os hierárquicos. Depois que se tornaram disponíveis várias têm feito sucesso com a venda deste tipo de aplicativo. Como exemplo, posso citar a Oracle e a IBM.

Bancos de dados comerciais

  • Ingres, o primeiro RDBMS comercial
  • Progress
  • IBM DB 2
  • Microsoft SQL Server
  • Oracle

Bancos de dados livres/de código aberto

  • MySQL
  • MariaDB
  • PostgresSQL
  • SQLite

Todos eles oferecem mecanismos de segurança, criptografia, controle de acesso de usuários e podem processar requisições SQL.

Normalização de dados

Em 1970, o matemático britânico, Ted Codd, criou o modelo relacional para gestão de bancos de dados e as 12 leis que descrevem o que um banco de dados relacional e um RDBMS fazem – além de uma série de leis de normalização que estabelecem as propriedades dos dados relacionais. Apenas dados que tenham sido normalizados pode ser considerados relacionais.

O que é a normalização

Normalização de dados é o processo de organização de campos e tabelas em um banco de dados relacional para minimizar a redundância e a dependência. Este processo comumente envolve a divisão de tabelas grandes em pequenas (e menos redundantes) e define relacionamentos entre elas.
De forma objetiva, o que se deseja é isolar dados de forma que a entrada/remoção/alteração de informações em um campo possa ser feita em apenas uma tabela e se propagar pelo resto do banco de dados, de acordo com os relacionamentos já definidos.
Como exemplo, imagine uma planilha com dados de clientes a serem lançados em um banco de dados relacional. Alguns clientes possuem algumas informações em comum, tais como trabalhar nos mesmos departamentos de uma mesma empresa, com o mesmo endereço de cobrança, portanto.
Ao lançar os dados na tabela, todos os endereços dos clientes precisam ser movidos para uma outra tabela e a cada um destes endereços é dado uma ID. Assim, substitui-se o texto do endereço de cobrança de cada cliente pelo ID do endereço, de acordo com a tabela de endereços.

O que você gosta… em blocos!

Vi isto em um vídeo. Trata-se de um aparelho conceito que pode ser montado de acordo com as necessidades ou desejos momentâneos de um usuário.

O telefone personalizável
Phone blocks – os componentes são encaixados em blocos.
Basicamente, você poderia adquirir um aparelho com funções básicas e, a partir desta “base”, adicionar novos recursos em “blocos”. Ou substituí-los.
Você gosta de tirar fotos dentro da cidade e prefere armazenar as imagens em um servidor nas nuvens. Neste caso, pode optar por ter um bloco de memória menor e, aproveitando o espaço, uma bateria de maior durabilidade.
Da mesma forma, se deseja ter uma câmera melhor, não há por que comprar um celular inteiro para isto; basta adquirir um módulo com a câmera que você deseja – encaixa-o no aparelho e usa.
Não é difícil uma pessoa trocar de aparelho apenas por estar insatisfeita com um único detalhe ou recurso que lhe é insuficiente: pouca memória RAM, som muito baixo, câmera com flash fraco ou lentes ineficientes. O conceito é este: troque apenas o que te faz infeliz.
Ecologicamente, esta ideia é muito boa. E, da minha parte, gosto muito desta aparência que me lembra o LEGO… doce infância.

Debian Edu — uma solução educacional completa

Como o próprio nome sugere, trata-se de um sistema operacional Debian GNU/Linux completo com aplicativos voltados pro ambiente educacional.
A palavra completo, aqui, significa que, a partir de seus diversos perfis, é possível instalar servidores, estações de trabalho e laptops que funcionam integrados dentro do ambiente de rede escolar.
Com o Debian Edu, os próprios professores ou o pessoal do suporte podem preparar e instalar um ambiente educacional multiusuário em múltiplas máquinas em questão de horas ou dias – o sistema chega a centenas de aplicações pré-instaladas e milhares de outras disponíveis em pacotes prontos para serem baixados e instalados a partir dos repositórios Debian.
A versão analisada aqui é a Debian Edu 7.1+edu0 “Wheezy”, baseada no sistema operacional Debian 7 “Wheezy” Stable, atualizada e cuidadosamente aprimorada, comparada à versão anterior – e continua com os mesmos recursos e facilidade de manutenção.

O que tem sido dito sobre a Debian Edu

  • Giorgio Pioda, administrador de sistemas, que tem usado o Debian Edu na SPSE (Scuola per Sportivi d’Élite) em Tenero, Suíça: “Posso dizer que estou com o Debian Edu Wheezy instalado em ambiente de produção desde meados de Agosto e ele está funcionando perfeitamente. Está sendo usado todos os dias”.
  • Nigel Barker, Coordenador de TI na Hiroshima International School, Japão: “Eu consegui deixar um Tjener e um laboratório de computação em funcionamento, para o início das aulas, em apenas 4 dias após o lançamento da versão beta 1. Estou muito satisfeito com o rumo das coisas desde o primeiro mês de aula.”
  • Segundo Lucas Nussbaum, Líder do Debian Project: “o Debian Edu é um projeto fantástico por, pelo menos, duas razões. Uma, por que expõe um público – especificamente crianças – ao Software livre e ao Debian. Segundo, por que demonstra como é possível montar uma distribuição bem sucedida a partir do Debian e de dentro do Debian”

Sobre o Debian Edu e o Skolelinux

Debian Wheezy - Skolelinux
Logo do Skolelinux – Debian.

O Debian Edu – também conhecido como Skolelinux – é uma distribuição baseada no Debian, que provê um ambiente de rede escolar completamente configurado e pronto para usar.

Imediatamente após a instalação de um servidor na escola, rodando todos os serviços necessários a uma rede escolar, o sistema já estará pronto para que usuários e máquinas sejam adicionados via GOsa² – uma interface web confortável.
Um ambiente de inicialização via rede é preparado com o PXE, de forma que, após a primeira instalação do servidor principal com um CD ou pendrive, todo o restante do parque de máquinas pode ser instalado via rede local.
O servidor escolar oferece um banco de dados LDAP e serviço de autenticação Kerberos, centralização dos diretórios pessoais, um servidor DHCP, um proxy web e muitos outros serviços.
O desktop  é instalado com mais de 60 pacotes de softwares educativos e muitos outros podem ser adicionados do arquivo Debian. Além disto, as escolas podem escolher entre os ambientes KDE Plasma, GNOME, LXDE e Xfce.

Mais informações

Você pode obter mais informações e baixar o manual aqui.
E você pode fazer o download do CD netinstall multi arquiteturas (655 MiB) nos seguintes links:

Aqui você pode encontrar a versão para gravar no pendrive, voltada para múltiplas arquiteturas:

Use o StartPage como alternativa ao Google.

Um dos pontos mais criticados por quem faz suas pesquisas através do Google é o da privacidade. É neste ponto que as alternativas se tornam muito atraentes.
Se você não quer que o Google saiba e repasse a seus parceiros comerciais o que você anda buscando por aí, usar um mecanismo de busca que respeite a sua privacidade é algo interessante.

Como funciona

Tela inicial do StartPage
Tela principal do StartPage – clique para ampliar.

O StartPage faz uso da máquina de pesquisa do Google. Ou seja, toma os termos de pesquisa que você forneceu e vai fazer a consulta ao Google – fornecendo as próprias informações ao Google, em vez das suas.
É assim que a sua privacidade fica (razoavelmente) preservada. É como se você, em vez de enviar uma carta em seu próprio nome, a entregasse para outra pessoa envelopar e colocar seu próprio endereço e depois postá-la. Ou seja, embora o conteúdo seja seu, as informações sobre quem o enviou (postou) dizem respeito a outra pessoa.