Upload
elliando-dias
View
2.366
Download
0
Embed Size (px)
Citation preview
Desenvolvimento Web Avançado usando PHP: conceitos básicos, perspectivas e
tendências
Thiago Jabur [email protected]
27 de Setembro de 2007
Conceitos Básicos de PHP
• PHP: "PHP Hypertext Preprocessor"• Tecnologia de código livre
– Criada Rasmus Lerdorf (Dinamarca)Andi Gutmans e Zeev Suraski (Israel)
• Pode ser incorporado como módulo de um servidor web– IIS e Apache (Windows e Unix)
• www.php.net– informações detalhadas– manual
• Linguagem interpretada
Conceitos Básicos de PHP
• Esquema conceitual de uma aplicação Web
Conceitos Básicos de PHP
• Ambiente de execução - Variáveis
Hello World
<h1>Exemplo</h1> <?php
$firstvar = "Hello World"; echo $firstvar;
?>
Orientação a Objetos em PHP
• A palavra-chave class indica uma declaração de classe, delimitada por chaves.
• Dentro da classe podemos definir – atributos (variáveis) e– métodos (funções)
• Formam o estado e o comportamento do objeto.• Um método com o mesmo nome da classe é o
construtor do objeto, sendo executado sempre que uma instância for criada.
• A classe deve utilizar a variável $this para referenciar seus próprios métodos e atributos
Uma classe simples
class ContaCorrente{
var $saldo;function ContaCorrente ($valor) {
$this->saldo = $valor;}function saque ($valor) {
if ($this->saldo >= $valor)$this->saldo = $valor;
}function deposito ($valor) {
$this->saldo += $valor;}
}
Utilizando uma classe
• A definição da classe deve estar disponível no script ou página PHP que utiliza a classe – comandos include ou require
• Um objeto da classe deve ser instanciado pelo operador new.
• O operador -> permite referenciarmos atributos e métodos do objeto
Utilizando a classe
<?phpinclude "ContaCorrente.php";
$conta = new ContaCorrente (1000.0);
echo ("Saldo inicial: { $conta->saldo }<BR/>");
$conta->saque (150.0);
echo ("Novo saldo: {$conta->saldo}<BR/>");
?>
IDEs para desenvolvimento WEB
• Eclipse– Vantagens:
• Suporte a inúmeros plugins, inclusive de modelagem;
• Independente de linguagem, ambiente único
IDEs para desenvolvimento WEB
• Dreamweaver- Desenvolvedor de códigos web
- (.php, .asp, .js, .html, .xml, e etc)- Oferece mais auxílios para programação
web do que outros ambientes- Facilidade de configuração - Integração a servidores
Dreamweaver
Definição da aplicação em que se deseja
trabalhar
IDEs para desenvolvimento WEB
• Delphi for PHP– http://www.codegear.com– IDE Visual para PHP– Aumento de produtividade– Arquitetura de Componentes– Baseado em scripts e bibliotecas populares
e código aberto
AJAX
• Asynchronous Javascript And XML– Recuperação assíncrona de dados
• objeto XMLHttpRequest; – Apresentação baseada em padrões, usando
XHTML e CSS; – Exposição e interação dinâmica usando o DOM; – Intercâmbio e manipulação de dados usando
XML e XSLT; – JavaScript une as tecnologias.
Frameworks Ajax
• Prototype– http://www.prototypejs.org/
- Objetiva facilitar o desenvolvimento de aplicações dinâmicas na Web
- manipulação de DOM - tratamento de eventos
Frameworks Ajax
Sajax
• É uma ferramenta Open Source para fazer a programação Web, utilizando Ajax, o mais fácil possível
• http://www.modernmethod.com/sajax/• Possui diversos exemplos e tutoriais no
próprio site
Frameworks Ajax
• Mootools– http://mootools.net/
– Escrever códigos elaborados, flexíveis e compatíveis com diversos navegadores
Framework PHP
• CakePHP– http://www.cakephp.org/– http://manual.cakephp.org/– Convenção ao invés de configuração
• ao contrário de outros frameworks onde existem enormes XML de configuração de aplicativo;
– Arquitetura MVC (Model, View, Controller)– Pastas da aplicação estruturadas
Integração e intercâmbio - XML
• XML (eXtensible Markup Language) – padrão da W3C para gerar linguagens de
marcação para necessidades especiais– capaz de descrever diversos tipos de
dados– separação do conteúdo e da formatação– legibilidade
Folha de estilos - XSL
– XSL – eXtensible Stylesheet Language • pode ser usada para transformar XML em
HTML– Consiste de três métodos:
• transformar documentos XML• definir partes e padrões do XML• formatar documentos XML
SGBD MySQL
• O MySQL foi criado na Suécia por David Axmark, Allan Larsson e Michael Widenius
• Usa a SQL(Structured Query Language) e seus padrões
• Livre para aplicativos Web• www.mysql.com• A versão mais atual é a 5.0 (há a versão
Beta 5.1)• Considerado um dos SGBD mais
eficientes para a Web
SGBD MySQL
Exemplo de Tabela do MySQL
SGBD MySQL
• Segue a sintaxe da SQLEx: CREATE, DROP, INSERT, SELECT, UPDATE, etc.
• Comando de criação de uma tabela de teste:CREATE TABLE pessoa(id_user INTEGER AUTO_INCREMENT,nome VARCHAR(80),telefone VARCHAR(10),PRIMARY KEY(id_user));
SGBD MySQL
Exemplos de Comandos com MySQL:- SELECT * FROM pessoa;
- SELECT nome, tel FROM pessoa;
- INSERT INTO pessoa (nome, tel, cpf) VALUES (‘Andre’,’00-00001111’,’01100110188’);
- UPDATE pessoa SET nome = ‘Andree’ WHERE cpf = ‘01100110188’;
phpMyAdmin
• phpMyAdmin– ferramenta desenvolvida com PHP – para o gerenciamento de banco de dados
MySQL.• Sua primeira versão foi lançada em 1998• http://www.phpmyadmin.net
Modelagem de BD
• DBDesigner
– Criação Gráfica do Modelo Entidade Relacionamento
– Geração dos comandos SQL para a criação do BD Modelado
MySQL + Apache + PHP
Esse três softwares livres são grandemente utilizados, pois além de gratuitos, são de alta qualidade
Softwares que instalam e configuram os 3 aplicativos citados em ambiente Windows- Serv-n- VertrigoServ
- também inclui o phpMyAdmin
- http://vertrigo.sourceforge.net
VertrigoServ
• Facilidades para configuração do ambiente de desenvolvimento.
Padrões Web
• Procure utilizar padrões de interface Web– minimizará o tempo de desenvolvimento– ajudará a trazer maior usabilidade ao
usuário– melhores práticas
Padrões de Welie
• Para design de interação
Mais de 125
padrões.
Padrão de Welie - Automotive Site
Padrões Web Yahoo!http://developer.yahoo.com/ypatterns/
Outros Padrões para Web
• Designing Interfaces– Jenifer Tidwell– http://designinginterfaces.com/
• Web Patterns– UC Berkeley– http://harbinger.sims.berkeley.edu/ui_desig
npatterns/webpatterns2/webpatterns/home.php
• IAWiki on Website patterns– Feita por voluntários– http://www.iawiki.net/WebsitePatterns