Programação PHP e Javascript para Web
Por Rodolfo Ribeiro Machado, programador C++, Qt e PHP.
Nesta parte do site veremos o desenvolvimento para Web com PHP e Javascrip , com o advento da computação em nuvem (em inglês, Cloud Computing) e sistemas distribuídos, não podemos mais ficar só no Desktop, sistemas e soluções Web desenvolvidas em PHP/Javascript podem ser integradas a dispositivos moveis (PDA's, Smartphones, Netbooks e Celulares) com aplicativos desenvolvidos em Qt, que hoje já roda em Linux, Windows®, Mac OS X, Windows Mobile®, Linux Embarcado (Embedded Linux), Symbiam e Maemo.
Neste novo mundo móvel e integrado você não só pode como deve pensar em soluções que integrem o Desktop com Web, sistemas distribuídos e sistemas em dispositivos moveis, provendo uma solução integrada, PHP e Qt nos fornecem as ferramentas para esta integração.
Aqui abordaremos desenvolvimento Web do ponto de vista da integração com dispositivos moveis, aproveitando minha experiencia como programador Qt, e também do ponto de vista da crescente tecnologia de computação em nuvem, minha idéia, portanto, é o desenvolvimento de sistemas em PHP – javascript- HTML e também Ajax( que não é uma linguagem e sim uma técnica de programação), o enfoque sera, então, em sistemas rodando em um servidor Web e sendo acessados remotamente, e não tanto paginas e/ou sites.
Quando digo “sistemas”, penso em automação comercial, ERP, CRM, vendas, controle de estoque, financeiro e qualquer outro tipo de sistema que roda no Desktop e que pode rodar na Web também. Estes sistemas podem estar rodando “na nuvem”, tecnologia que favorece o uso do modelo Saas(Software as a service), modelo que vem crescendo no mercado e que se mostra o mais adequando quando se pensa em disponibilizar seu software através de nuvens.
Apesar disto vou disponibilizar um tutorial sobre a construção de um site/loja de vendas pela Internet, que servira como modelo didático para aprender a usar PHP e Javascript. (veja o modelo aqui ).
Não vou ensinar HTML e CSS, são tão básicos e essenciais no desenvolvimento Web que partirei do principio de que quem esta lendo este texto já tenha uma experiencia previa em HTML e CSS, ademais existem milhares de tutoriais na Internet sobre HTML, se eu fizesse um seria apenas “mais um” bem como existem excelentes sites, fóruns e listas voltados ao desenvolvimento Web especifico para desenvolvimento de sites, paginas e blogs, apesar de que hoje já é possível ter uma pagina na nuvem.
A direita da pagina você encontrara diversos links para fóruns, listas e tutoriais PHP, PHP tem no Brasil uma infinidade de fóruns e listas, portanto vou listar alguns, sou inscrito no PHP Brasil, portanto ele aparece em primeiro lugar nos links, mas fica difícil opinar sobre todos os fóruns, devido a quantidade, sinal de que não há dificuldade em obter ajuda e informação sobre PHP.
Nos vídeos indicados procurei selecionar aqueles que utilizam Linux e Software Livre nas aulas ou cursos de PHP e Javascript, para mantermos o espirito de liberdade e colaboração.
O desenvolvimento para Web pode lhe trazer, como trouxe para mim, uma ampliação dos seus horizontes profissionais, das suas oportunidades de trabalho, desenvolvendo paginas e sistemas que pela própria natureza da Internet são multiplataforma, ou seja, dependem mais da compatibilidade do navegador com HTML, CSS e Javascript do que do sistema operacional.
Então eu uni o útil ao agradável, ampliei meus horizontes profissionais desenvolvendo tudo no Linux com ferramentas Open Source, tomando alguns cuidados de compatibilidade com navegadores, sua pagina ou sistema Web sera exibido em qualquer navegador e em qualquer sistema operacional sem você abrir mão do Linux e das ferramentas Open Source de desenvolvimento.
No site vou enfocar o desenvolvimento Web no Linux usando somente ferramentas Open Source, quem visitou minha pagina sobre programação em Qt viu que a muita coisa sobre Qt no Windows®, porque aplicativos em Qt rodam no Desktop local, precisam ser compilados no sistema operacional em que vão rodar, como Qt é multiplataforma eu não podia deixar de lado Qt no Windows®, mas desenvolvimento Web pode ser tranqüilamente feito no Linux com ferramentas Open Source, já que o resultado ficara hospedado em um servidor Web, portanto o resultado do trabalho é visível em qualquer sistema operacional que acesse a Internet, não importando o sistema operacional onde a pagina ou sistema foi desenvolvido.
Portanto, como sou adepto incondicional do Software Livre, vou focar somente em Linus e ferramentas livres.
Abaixo, alguns links com tutoriais e dicas sobre desenvolvimento Web no Linux, para reforçar a minha opinião e o que eu disse acima:
- Montando um workstation de desenvolvimento web em GNU/Linux
- Criando um ambiente de desenvolvimento web livre com Eclipse e PHP
- Desenvolvimento Web em Ubuntu Linux
Bem, nem é preciso dizer que todo software está disponível no Linux para desenvolvimento Web, PHP, Javascript, Mysql, PostgreSql(porque também esta disponível em muitos servidores Web e é o escolhido por varios desenvolvedores), Apache, phpMyAdmin, phpPgAdmin, Gimp etc.
Abaixo, vou listar algumas ferramentas indispensáveis para o desenvolvimento Web/PHP no Linux, lembrando que o PHP, o Apache e os bancos de dados são o basico e indispensavel que esta disponivel na sua distribuição para instalação, o Debian instala o Apache por padrão:
Editores HTMl/CSS/PHP/Javascript:
Administração remota de bancos de dados via Internet(MySql e PostgreSql):
Manipulação, edição e tratamento de imagens:
Manter um diagrama entidade/relacionamento do banco de dados é muito interessante, para alguns indispensável no minimo como forma de documentação, mesmo que você não vá usar a ferramenta para gerar os scripts SQL diretamente, mas sempre é possível fazer engenharia reversa de um banco já existente e manter um diagrama atualizado.
Uma ótima ferramenta é o Mogwai, software de modelagem de dados (Entidade/Relacionamento) Open Source, escrito em Java, roda no Linux mas é multiplataforma, roda no Windows® também, acessando os principais bancos de dados Open Source (Mysql e PostgreSql)e comerciais também:
Abaixo, alguns links com apostilas e tutorias das ferramentas citadas acima:
Apache
Guia Foca GNU/Linux - Apache
GDH Press - Servidores Linux, Guia Prático: Instalando o Apache
O Quanta Plus já vem com um manua completo em português, basta instalar o Quanta e você já tem o manual no menu “Ajuda”.
Abaixo, um link para você baixar uma vídeo-aula sobre o Quanta Plus:
Vídeo Aula Quanta Plus
Bluefish
Tutorial Bluefish
phpMyAdmin
Tutorial phpMyAdmin
Instalando e configurando o phpMyAdmin
phpPgAdmin
Tutorial phpPgAdmin
Instalando e configurando o PhpPgAdmin no Ubuntu
Como utilizar o phpPgAdmin
Gimp
Comunidade GIMP do Brasil: Site sobre o software livre GIMP
Video aula sobre Gimp
Mogwai ERDesigner
Manual Mogwai ERDesigner
Abaixo, Bluefish Editor.(Clique na imagem para ampliar):
Se for usar o Bluefish, instale também o pacote SciTE para realce de sintaxe.
Abaixo, Quanta Plus Editor HTML.(Clique na imagem para ampliar):
Abaixo, phpMyAdmin, administrador remoto do MySql.(Clique na imagem para ampliar):
Abaixo, phpPgAdmin, administrador remoto do PostgreSql.(Clique na imagem para ampliar):
Abaixo, Gimp, Manipulação, edição e tratamento de imagens.(Clique na imagem para ampliar):
Abaixo:Mogwai com modelo de banco.(Clique na imagem para ampliar).
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor"), é uma linguagem de programação Open Source, de sintaxe muito semelhante a C e C++, interpretada, isto é, não é compilada, requer a presença de um interpretador PHP para o programa rodar, estruturada e procedural, e a partir da versão 5.0, orientada a objetos.
Sua tipagem é fraca, o tipo da variável é definido no contexto em que ela é usada, por exemplo, se você atribui a variável $teste o valor 1, $teste=1;, o PHP trata a variável como numérica, se mais a frente você atribui novo valor a variável, por exemplo $teste=”Linux”;, a variável passa a ser tratada como string.
A linguagem é extremamente modularizada, indicando sua instalação e uso em servidores web, porem nada impede que se use PHP como uma linguagem qualquer, é possível desenvolver aplicativos Desktop com uma extenção do PHP, o PHP-GTK, o Agata Report é escrito em PHP-GTK, também se pode combinar PHP com scripts shell no Linux para a administração do sistema, veja alguns exemplos:
PHP-GTK
PHP-Qt
Shell Scripts e PHP
- http://www.vivaolinux.com.br/artigo/Shell-script-com-PHP/
- http://www.ataliba.eti.br/node/680
- http://www.dicas-l.com.br/dicas-l/20070826.php
Aqui mesmo no site Sistemas Para Linux tem exemplos de uso de Shell Scrips com PHP e também arquivos em lote do MS-DOS, os Batch files, com PHP, no tutorial sobre integração do Agata Report com um aplicativo Qt.
PHP acessa os seguintes bancos de dados: PostgreSQL, MySQL, Oracle, Sybase, InterBase, SQLite, MSSQL e Firebird.
PHP roda nos seguinte sistemas operacionais: Linux, FreeBSD, Solaris, Mac OS, Windows®, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX.
Embora PHP possa ser usada fora de servidores Web, o enfoque aqui sera o uso do PHP no desenvolvimento Web. Os exemplos e tutoriais usarão orientação a objetos, se você já programa em C++ e Qt, não terá nenhuma dificuldade em acompanhar.
Javascript é uma linguagem de programação criada pela Netscape, baseada na linguagem Java, mas cuidado, Javascript não é Java, é baseado em Java.
Essencialmente, o que Javascript nos permite é descrever um documento HTML através de uma hierarquia de objetos, como se a pagina Web, o documento HTML, fosse um objeto instanciado de uma classe, como em qualquer linguagem de programação orientada a objetos e, esta descrição nos é muito conveniente.
Você vera muitas definições de javascript associada a HTML e CSS como DHTML(Dynamic HTML) , para permitir que uma página Web seja modificada dinamicamente na própria máquina cliente, sem necessidade de novos acessos ao servidor web, porem linguagens de programação associadas a sripts CGI, como PHP por exemplo, também geram paginas dinâmicas, só que do lado do servidor, enquanto javascript o faz do lado cliente, mas PHP enxerga o documento HTML como texto puro, ao passo que javascript o descreve através de uma estrutura de orientação a objetos, Javascript traz todo o poder da orientação a objetos para o HTML.
Javascript implementa a resposta a eventos no documento HTML, quando algo acontece em uma página Web, ocorre um evento, por exemplo, um botão recebe um clique, o mouse é arrastado, uma página é carregada, um formulário é enviado, e assim por diante. Javascript é uma linguagem também orientada a eventos, é projetada para reagir quando um evento ocorre.
Por isso, Javascript é uma linguagem baseada em objetos, ou seja, é uma linguagem orientada a objetos com um conjunto de objetos já embutidos, embora seja possível definir classes em javascrip.
Estes diagramas abaixo representam o DOM, Document Object Model ou Modelo de Objetos de Documentos:
http://pt.wikipedia.org/wiki/Modelo_de_Objeto_de_Documentos
Esta é a hierarquia de objetos básica de Javascript, estes são sempre criados(Clique na imagem para ampliar):

Aqui, uma descrição um pouco mais completa.(Clique na imagem para ampliar):

Onde iremos concentrar nosso trabalho é em window->document->forms[]
É uma linguagem livre, sua sintaxe é, assim como PHP, é muito parecida com C e C++, e como é orientada a objetos, quem já estudou meus tutoriais de Qt não terá dificuldades em javascript.
Sua tipagem é fraca, o tipo da variável é definido no contexto em que ela é usada.
É interpretada, mas o interpretador é o próprio browser ou navegador.
Javascript não pode abrir, ler, gravar ou salvar arquivos no computador do usuário, só pode acessar a informação que está na página Web onde esta ou em outras páginas carregadas ao mesmo tempo, isto por medida de segurança, é uma restrição natural para que não danifique nada no computador cliente.
Por fim, a diferença fundamental entre PHP e Javascript é que PHP trabalha no servidor e Javascript no cliente.
Ajax, (acrônimo em língua inglesa de Asynchronous Javascript And XML) é uma técnica, e não uma linguagem de programação, é uma combinação de Javascript, XML e o uso de requisições assíncronas ao servidor através do uso do objeto XMLHttpRequest, seu objetivo é aumentar a usabilidade de sites e paginas da internet, tornando-as mais interativas com o usuário.
O uso do Ajax como técnica de programação torna necessário um maior conhecimento do DOM (Document Object Model - Modelo de Objetos de Documentos) e do XML (eXtensible Markup Language).
A idéia é que o navegador hospede uma aplicação, e não somente conteúdo, de modo que qualquer ação do usuário, como por exemplo, clicar num botão ou link, não implique que toda a pagina tenha de ser atualizada ou recarregada, somente partes da pagina são atualizadas.
As informações apresentadas neste site, bem como os tutoriais, não tem absolutamente nenhuma garantia implícita ou explicita decorrente de seu uso, podem ser copiadas,referenciadas, distribuídas e utilizadas, desde que expressamente citada esta fonte e o crédito do autor.
Sua opinião é muito importante.
Colabore com o site.
Envie suas duvidas, sugestões, criticas ou sua colaboração (Artigos ou tutoriais).
Entre em contato para contratar trabalhos Freelancer ou consultoria sobre projetos em Qt.
Colabore com o site.
Envie suas duvidas, sugestões, criticas ou sua colaboração (Artigos ou tutoriais).
Deixe seu comentário:
Entre em contato para contratar trabalhos Freelancer ou consultoria sobre projetos em Qt.
E-Mail:
Sobre o autor:
Mapa do Site
Projetos do autor:
Texto para reflexão
Tutoriais do autor:
- Tutorial – Criando uma classe de acesso a banco de dados e consultas SQL em PHP, versão pdf
- Tutorial – Criando uma classe de acesso a banco de dados e consultas SQL em PHP, versão HTML
- Tutorial – Criando um banco de dados e funções de auxilio em PHP, versão pdf
- Tutorial – Criando um banco de dados e funções de auxilio em PHP, versão HTML
- Tutorial – Criando um cadastro em PHP, Javascrip e Ajax, versão pdf
- Tutorial – Criando um cadastro em PHP, Javascrip e Ajax, versão HTML
- Tutorial – Criando um cadastro para alterar dados em uma tabela com PHP, versão pdf
- Tutorial – Criando um cadastro para alterar dados em uma tabela com PHP, versão HTML
Dicas PHP Linux
Dicas PHP Windows®
Arquivos fontes dos tutoriais:
Links relacionados a PHP:
- PHP Site oficial.
- Manual do PHP.
- PHP Brasil, Forum PHP e artigos.
- iMasters Fóruns - PHP
- Fórum Script Brasil.
- Fórum WMO.
- Lista PHP.
- PHP mania.
Tutoriais e apostilas PHP online:
- Manual do PHP.
- PHP - Um simples tutorial.
- Tutorial Php - Iniciante Funções e conhecimentos básicos.
- PHP - Diversos tutoriais.
- Tutorial: Portal de Notícias em PHP/MySQL.
- Oficina de PHP - Aula 1
- Aplicativos em PHP Wikilivros
Tutoriais e apostilas PHP para Downloads:
- Curso: PHP
- Tutorial da linguagem PHP
- PHP e Desenvolvimento WEB com Ferramentas Open Source
- Apostila de PHP
- Programação para Web utilizando PHP
- Curso de linguagem PHP
Videos didaticos sobre PHP:
- PHP Orientação a Objetos Aula 1
- PHP Orientação a Objetos Aula 2
- PHP iniciando com Array Aula 3
- Como se conectar ao MySQL através do PHP
- Como enviar e-mails em PHP
- Como enviar email com Script php mail()
- XAMPP - Apache, Mysql e PHP num piscar de olhos
Links relacionados a Javascrip:
- Site oficial
- CódigoFonte.net Javascript.
- Script Brasil Javascript.
- GUJS - Javascript
- iMasters Fórum Javascript.
- Fórum WMO javascript.
- Programação Desktop em Javascript - JavaScript in GNOME.
Tutoriais e apostilas Javascript online:
- Javascript Tutorial.
- TUTORIAIS DE JAVASCRIPT .
- Programação em Javascript.
- Tutoriais Javascript.
- Javascript orientado a objetos.
- Javascript Básico
- Tutorial Javascript
Tutoriais e apostilas Javascript para Downloads:
- Tutorial Javascript
- Truque e dicas javascript
- JavaScript – Aplicações Interativas para a Web
- Javascript
- Apostila de Javascript
- Apostila javascript
Tutoriais Ajax, DOM e XML
- Ajax- Como começar
- Ajax- Utilização do XMLHttpRequest
- Ajax Tutorial
- Caminhando pelo DOM
- Tutorial XML
Bancos de dados:
- PostgreSQL
- Comunidade brasileira PostgreSQL
- Administração - pgAdmin
- Administração - TOra - Postgre e Oracle
- _________________________________
- MySQL
- Comunidade MySQL Brasil
- Administração - MySQL Administrator e MySQL Query Browser
- _________________________________
- Firebird
- FireBase - Firebird Brasil
- Administração - FlameRobin
- _________________________________
- Oracle
- GPO - Grupo de Profissionais Oracle
- GUORS - Grupo de Usuários Oracle
- Linux:Oracle - Comunidade
- Administração - Oracle SQL Developer
- Administração - TOra
- _________________________________