Bacharel em Ciência da Computação (UFG)
Especializando em Engenharia de Software
Analista de Sistemas – SIGMA / MDIC
Professor Formador EAD – NEAD/ETEB
george@georgemendonca.com.br
http://www.georgemendonca.com.br
Introdução
Conteúdo Programático
26/03/2011 2
• O que é PHP?
– PHP: Hypertext Preprocessor
– PHP é uma linguagem de script do lado servidor
– Scripts PHP são executados no servidor
– PHP suporta várias bases de dados (MySQL, Informix,
Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc)
– PHP é um software open source (código aberto)
– PHP é gratuito para baixar e utilizar.
Introdução
26/03/2011 3
• O que arquivos PHP podem fazer?
– Arquivos PHP podem conter texto, tags HTML e scripts.
– Arquivos PHP são retornados para o navegador como
HTML simples.
– Arquivos PHP tem extensões de arquivo ".php", ".php3",
ou ".phtml“.
Introdução
26/03/2011 4
• A história do PHP
– PHP/FI (Personal Home Page / Forms Interpreter): foi criado
por Rasmus Lerdorf em 1995 (Pearl).
– Em 1997, PHP/FI 2.0, a segunda versão da implementação em
C.
– PHP 3: totoalmente reescrito em 1997, assemelha ao PHP de
hoje. Criado por And Gutmans e Zeev Suraski. Juntamente
com Rasmus, lançaram esta versão em junho de 1998.
– PHP 4: Zend Engine, mais robusta, profissional, novas
características, banco de dados, sessões, etc.
– PHP 5: Zend Engine 2, lançado em junho de 2004, novo
modelo de Orientação a Objetos, novas características.
Introdução
26/03/2011 5
• Características do PHP
– Velocidade e robustez
– Estruturado
– Suporte a Orientação a Objetos
– Portabilidade – Independência de plataforma - "write once
run anywhere" (escreva uma vez, rode em qualquer lugar);
– Tipagem Fraca
– Sintaxe similar a Linguagem C/C++ e o PERL
– Curva de aprendizado reduzida
– Documentação oficial em português
Introdução
26/03/2011 6
• Características do PHP
– Foi criado do zero para a internet em vez de ser a adaptação
de uma tecnologia anterior
– Grande quantidade de módulos, bibliotecas prontas e
frameworks disponíveis
– Flexibilidade para desenvolver códigos em outras linguagens.
Introdução
26/03/2011 7
• O que PHP pode fazer?
– Qualquer coisa que um script CGI faz e muit mais!
• Script no lado do servidor (server-side scripts)
– Este é o mais tradicional e principal campo de atuação do PHP
• Script de linha de comando.
– CLI – Command Line Interface
• Escrever aplicações desktop.
– PHP-GTK
Introdução
26/03/2011 8
• O que você precisa para começar?
– Ter acesso a um servidor Web com suporte PHP.
– Você pode:
• Instalar o servidor web Apache (ou IIS) em seu próprio servidor,
instalar o PHP e o banco de dados MySQL, ou outro banco de sua
preferência.
• Ou executar um instalador e configurador de um ambiente Web para
PHP como o WAMP, LAMP, XAMP ou o Zend Server CE.
• Ou encontrar um plano de hospedagem web com suporte a PHP e
Banco de Dados.
Introdução
26/03/2011 9
• Apache HTTP Server
– Servidor HTTP (HyperText Transfer Protocol).
– É a principal tecnologia da Apache Software Foundation,
responsável por mais de uma dezena de projetos envolvendo
tecnologias de transmissão via web, processamento de dados
e execução de aplicativos distribuídos.
Introdução
26/03/2011 10
• Apache HTTP Server
– Mais bem sucedido servidor web livre
– Numa pesquisa realizada em Agosto de 2010 (Pesquisa
realizada pelo site Netcraft) foi constatado que a utilização do
Apache representa 56% dos servidores ativos no mundo.
– Software de licença livre e código aberto.
Introdução
26/03/2011 11
• Apache HTTP Server
– Criado para atender às demandas dos maiores provedores e
sites web.
– Não tem concorrentes quanto à riqueza de recursos,
estabilidade, performance, etc.
Introdução
26/03/2011 12
• Apache HTTP Server
– Total de sites em todos os domínios de Agosto de 1995 a
Agosto de 2010.
Introdução
26/03/2011 13
• Apache HTTP Server
– Quota de mercado para os principais servidores em todos os
domínios de Agosto de 1995 - agosto 2010.
Introdução
26/03/2011 14
• Apache HTTP Server
– Links oficiais:
• The Apache Software Foundation
• Apache - HTTP Server Project
Introdução
26/03/2011 15
• O lado Cliente
– Onde são processadas as diversas formas de interação
entre o usuário e o sistema.
– Solicitam serviços para efetivar a interação entre usuário e
sistema.
– Navegador: Fire Fox, IE, Opera, etc.
• Responsável por mostrar o conteúdo recebido do servidor.
• JavaScript, Cookies, HTML, CSS, imagens, etc.
Arquitetura Cliente Servidor
26/03/2011 16
• O lado Servidor
– Estação onde estão sendo executados os aplicativos aos
quais os acessos são feitos.
– Oferecem serviços especializados aos seus requisitantes.
– Repositório de regras de negócios do software web.
– Servidor Web, Servidor de Arquivos, Servidor de E-mail,
Servidor de Banco de Dados.
Arquitetura Cliente Servidor
26/03/2011 17
Arquitetura Cliente Servidor
26/03/2011
18
Usuário
Servidor Web
Aplicação
WAN
MAN
LAN
Apache Banco
de
Dados
PHP
Cliente
(browser)
MySQL
PgSQL
OracleAtivo
Passivo
Internet
• Aplicações Web:
– Blog
– Webmail
– E-comerce
– Portais Corporativos, Colaborativos, do Conhecimento, etc
– Intranet's corporativas
– Extranet's
– CMS's (Content Management Systems)
– Workflow/Groupware
Aplicações Web com PHP
26/03/2011 19
• Aplicações Web:
– Sistemas de Informação
– ERP's (Enterprise Resource Planning)
– Redes sociais: Orkut, Facebook, Linded In, Twitter, etc.
• Stand Alone:
– PHP GTK (aplicações desktop)
• Alguém pode dar mais exemplos?
Aplicações Web com PHP
26/03/2011 20
 Como fazer o download do PHP?
 http://www.php.net/downloads.php
 Como instalar o PHP?
 http://www.php.net/manual/en/install.php
 Como fazer o download do servidor web Apache?
 http://httpd.apache.org/download.cgi
Informações importantes sobre PHP
26/03/2011 21
• O primeiro script
Iniciando com PHP
26/03/2011 22
<html>
<head>
<title>Primeiro Script PHP</title>
</head>
<body>
<?php echo "Primeiro Script em PHP"; ?>
</body>
</html>
Código HTML
Código PHP
• Tags PHP
Iniciando com PHP
26/03/2011 23
// Tag padrão
<?php echo "Primeiro Script em PHP"; ?>
// Short open tags
<script language=“php”>
echo "Primeiro Script em PHP";
</script>
<? echo "Primeiro Script em PHP"; ?>
<% echo "Primeiro Script em PHP"; %>
• Case Sentitive
– Faz distinção entre maiúsculas e minúsculas
• Instruções terminadas por “;”
• Comentários
Iniciando com PHP
26/03/2011 24
// Uma linha
# Uma linha
/* Mais de uma
linha */
• Comentários PHP DOC
Iniciando com PHP
26/03/2011 25
/**
* Comentário para PHP DOC
* @author George Henrique
* @example Aula
* @copyright www.georgemendonca.com.br
* @version 1.0
*
*/
• Variáveis
– É um rótulo que identifica um repositório de dados (local
de armazenamento na memória).
– Faz referência a um tipo de dado específico, isto é, a um
número, a uma letra (caractere), a uma sequência de letras
(string), etc.
– Possui um escopo, isto é, uma região do código
(programa) onde é válida ou pode ser utilizada.
Iniciando com PHP
26/03/2011 26
• Variáveis
– Seu uso se dá em dois momentos:
• Declaração
• Utilização propriamente dita (leitura ou escrita)
– São representadas por $, seguidas pelo nome da variável.
Iniciando com PHP
26/03/2011 27
• Variáveis
– Atribuídas com o sinal de =
• Variável no lado esquerdo, valor no lado direito
– Não precisam ser declaradas ou inicializadas. Exemplo:
– Atenção: se não for inicializada o valor atribuído será NULO
Iniciando com PHP
26/03/2011 28
<?php $nome = "George Henrique"; ?>
• Tipos de Variáveis
– O PHP suporta os oitos tipos primitivos.
– São quatros tipos básicos:
• boolean (valor verdade, TRUE ou FALSE)
• integer (conjunto Z = {..., -2, -1, 0, 1, 2, ...})
• float (número de ponto flutuante, ou também double)
• string (série de caracteres)
Iniciando com PHP
26/03/2011 29
• Tipos de Variáveis
– Dois tipos compostos:
• Array (mapa ordenado)
• Object (objeto de uma classe)
– E finalmente dois tipos especiais:
• Resource (referência a um recurso externo)
• NULL (variável sem valor ou não definida)
Iniciando com PHP
26/03/2011 30
• Tipos de Variáveis
– O manual também introduz alguns pseudo-tipos por razões
de legibilidade:
• mixed (indica que um parâmetro pode receber mais de um tipo)
• number (indica que um parâmetro pode ser integer ou float)
• callback (chamada de funções definidas como parâmetro)
– E a pseudo-variável $this. Utilizada para referenciar um
objeto de uma classe.
Iniciando com PHP
26/03/2011 31
• Tipos de Variáveis
Iniciando com PHP
26/03/2011 32
<?php
$bool = TRUE; // um booleano
$str = "foo"; // uma string
$int = 12; // um inteiro
$double = 1.2; // ponto flutuante
echo gettype($bool)." <br />"; // imprime "boolean"
echo gettype($str)." <br />"; // imprime "string"
echo gettype($double)." <br />"; // imprime "double"
// Se é um inteiro, incrementa em quatro
if (is_int($int)) {
echo $int += 4;
}
// Se for string, imprime conteúdo, caso contrário não faz nada
if (is_string($bool)) {
echo "String: $bool";
}
Saída:
boolean
string
double
16
• Variáveis variáveis
– Utilizado quando se necessita de criar variáveis e utilizá-las
dinamicamente:
Iniciando com PHP
26/03/2011 33
<?php
$variavel_comum = "variavel_dinamica";
$$variavel_comum = "conteúdo da variável dinâmica";
echo $variavel_comum." <br />";
echo $$variavel_comum." <br />";
echo $variavel_dinamica;
Saída:
variavel_dinamica
conteúdo da variável
dinâmica
• Funções úteis mostrar informações sobre variáveis:
– var_dump($var)
• Mostra informações sobre uma variável.
– var_export($var)
• Representação estruturada de uma variável.
– print_r($var)
• Imprime informações legíveis sobre uma variável.
Iniciando com PHP
26/03/2011 34
<?php
$mensagem = "Para frente e avante!";
var_dump($mensagem);
echo "<br/>";
var_export($mensagem);
echo "<br/>";
print_r($mensagem);
Saída:
string(21) "Para frente e avante!"
'Para frente e avante!'
Para frente e avante!
• Conversão de Tipos
– A conversão de tipos no PHP e possível graças a utilização do
casting:
• (int), (integer) - converte para inteiro
• (bool), (boolean) - converte para booleano
• (float), (double), (real) - converte para número de ponto flutuante
• (string) - converte para string
• (binary) - converte para string binária (PHP 6)
• (array) - converte para array
• (object) - converte para objeto
• (unset) - converte para NULL (PHP 5)
– Veja: Tabelas de comparação de tipo do PHP
–
Iniciando com PHP
26/03/2011 35
• Conversão de Tipos
Iniciando com PHP
26/03/2011 36
<?php
echo "<pre>";
var_dump((bool) "Olá");
var_dump((bool) "");
var_dump((bool) 1);
var_dump((bool) array());
var_dump((int)(3/2));
var_dump((integer) 4.5);
var_dump((int) 7.5);
var_dump(3 + "7.1");
var_dump("10 gatos" + 5);
var_dump((string) 5);
var_dump(array(1,2));
var_dump((object) array(1,2));
Saída:
bool(true)
bool(false)
bool(true)
bool(false)
int(1)
int(4)
int(7)
float(10.1)
int(15)
string(1) "5"
array(2) {
[0]=> int(1)
[1]=> int(2)
}
object(stdClass)#1 (2) {
[0]=> int(1)
[1]=> int(2)
}
• Constantes
– Uma constante é um identificador para um valor simples. É
um valor que não se altera.
– Para definir uma constante, utilizamos a função define(), cuja
sintaxe é:
Iniciando com PHP
26/03/2011 37
<?php
define("NOME", "<VALOR>");
• Funções úteis para constantes:
– defined("NOME_DA_CONSTANTE")
• Verifica a existência de uma constante e se ela foi definida.
– constant("NOME_DA_CONSTANTE")
• Retorna o valor de uma constante. Útil para recuperar constantes
quando não se sabe o nome da constante ou quando é retornada por
uma função.
Iniciando com PHP
26/03/2011 38
• Exemplo usando constantes
Iniciando com PHP
26/03/2011
// Nomes de constantes válidos
define("TITULO_BLOG", "Meu Blog");
define("MSG_CONTEUDO_BLOG", "Seja bem vindo!");
define("MENSAGEM_POPUP_CADASTRO", "Cadastro realizado com
sucesso!");
// Nomes de constantes inválidas
define("2VLR", "constante inválida");
// Isto é válido, mas deve ser evitado:
define("__TITULOMODULO__", "deve-se evitar");
define("RODAPE_BLOG", "© 2010 by George Mendonça. All rights
reserved.");
echo TITULO_BLOG."<br />".
MSG_CONTEUDO_BLOG."<br />".
__TITULOMODULO__."<br />".
MENSAGEM_POPUP_CADASTRO."<br />".
// 2VLR."<br />". (Error)
RODAPE_BLOG;
Saída:
Meu Blog
Seja bem vindo!
deve-se evitar
Cadastro realizado com sucesso!
© 2010 by George Mendonça. All rights reserved.
• Constantes Pré-definidas
– __LINE__ - Retorna a linha atual do arquivo
– __FILE__ - Retorna o caminho com o nome do arquivo
– __DIR__ - Retorna o diretório.
– __FUNCTION__ - Retorna o nome da função atual.
– __CLASS__ - Retorna o nome da classe atual.
– __METHOD__ - Retorna o do método da classe atual.
– __NAMESPACE__ - Retorna o nome atual do namespace.
Iniciando com PHP
26/03/2011 40
• Variáveis Super Globais
– Variáveis nativas que estão sempre disponíveis em todos os
escopos:
• $GLOBALS — Referencia todas variáveis disponíveis no escopo global
• $_SERVER — Informação do servidor e ambiente de execução
• $_GET — HTTP GET variáveis
• $_POST — HTTP POST variáveis
• $_FILES — HTTP File Upload variáveis
• $_REQUEST — Variáveis de requisição HTTP
• $_SESSION — Variáveis de sessão
• $_ENV — Environment variables
• $_COOKIE — HTTP Cookies
Iniciando com PHP
26/03/2011 41
• Variáveis Super Globais
Iniciando com PHP
26/03/2011 42
echo $_SERVER["PHP_SELF"]."<br />";
echo $_SERVER["HTTP_HOST"]."<br />";
$nome = "George Henrique R. E. Mendonça";
echo $GLOBALS['nome']."<br />";
session_start();
$_SESSION['primeiro_nome'] = "George Henrique";
echo $_SESSION['primeiro_nome']."<br />";
echo $_GET["curso"]."<br />"; // Testar via URL: ?curso=PHP5
echo @$_POST["curso"];
Saída:
/aulas-php5.3-oo/02-php/10-variavis-super-globais.php
Localhost
George Henrique R. E. Mendonça
George Henrique
PHP5
• Array
– Arrays em PHP são mapas ordenados de chaves
e valores, ou seja, você pode atribuir a um
elemento do array uma chave e um valor.
Iniciando com PHP
26/03/2011 43
Iniciando com PHP
26/03/2011 44
<?php
$frutas1 = array('banana','maçã','pêra');
$frutas2[] = 'banana';
$frutas2[] = 'maçã';
$frutas2[] = 'pera';
$frutas3 = array (
0 => 'banana',
1 => 'maçã',
2 => 'pêra'
);
$frutas4['frutax'] = 'banana';
$frutas4['frutay'] = 'maçã';
$frutas4['frutaz'] = 'pêra';
echo '<pre>';
print_r($frutas1);
print_r($frutas2);
print_r($frutas3);
print_r($frutas4);
Saída:
Array
(
[0] => banana
[1] => maçã
[2] => pera
)
Array
(
[0] => banana
[1] => maçã
[2] => pera
)
Array
(
[0] => banana
[1] => maçã
[2] => pera
)
Array
(
[frutax] => banana
[frutay] => maçã
[frutaz] => pera
)
Iniciando com PHP
26/03/2011 45
<?php
echo $frutas1[1]; // maçã
echo '<br />';
echo $frutas2[0]; // banana
echo '<br />';
echo $frutas4['frutaz']; // pêra
Saída:
maçã
banana
pêra
• Array
– Acessando os elementos
• Operadores
– Aritméticos:
Iniciando com PHP
26/03/2011 46
+ => ADIÇÃO
- => SUBTRAÇÃO
* => MULTIPLICAÇÃO
/ => DIVISÃO
- oper => TROCA SINAL
++ oper => PRÉ-INCREMENTO
-- oper => PRÉ-DECREMENTO
oper ++ => PÓS-INCREMENTO
oper -- => PÓS-DECREMENTO
• Operadores
– Comparativos
Iniciando com PHP
26/03/2011 47
X == Y => X IGUAL A Y
X >= Y => X MAIOR OU IGUAL A Y
X <= Y => X MENOR OU IGUAL A Y
X != Y => X DIFERENTE DE Y
X <> Y => X DIFERENTE DE Y
X > Y => X MAIOR QUE Y
X < Y => X MENOR QUE Y
• Operadores
– De atribuição
Iniciando com PHP
26/03/2011 48
$num = 5; => Sinal de igualdade
$num += 5; => $num = $num + 5;
$num -= 5; => $num = $num - 5;
$num *= 5; => $num = $num * 5;
$num /= 5; => $num = $num / 5;
$nome .= “aluno”; => $nome = $nome.”aluno”;
$num1 %= $num2; => $num1 = $num1 % $num2;
• Operadores
– Se o recurso track_errors estiver habilitado, qualquer
mensagem de erro gerada pela expressão será gravada na
variável global $php_errormsg. Esta variável será sobrescrita
em cada erro, assim verifique-a constantemente se você
quiser usá-la.
– O PHP suporta um operador de controle de erro: o sinal
'arroba' (@). Quando ele precede uma expressão em PHP,
qualquer mensagem de erro que possa ser gerada por
aquela expressão será ignorada.
– $nome = @$__POST['nome'];
Iniciando com PHP
26/03/2011 49
• Operadores
– O PHP suporta um operador de execução: acentos graves
(``). Note que não são apóstrofes!
– O PHP tentará executar o conteúdo dos acentos graves como
um comando do shell; a saída será retornada (isto é, ela não
será simplesmente descarregada para a saída; ela pode ser
atribuída a uma variável).
– A utilização do operador contra-apóstrofo é idêntica a
função shell_exec().
Iniciando com PHP
26/03/2011 50
$output = `dir`;
echo "<pre>$output</pre>";
• Operadores
– Lógicos
Iniciando com PHP
26/03/2011 51
!X => verdadeiro se X for falso
X AND Y => verdadeiro se X e Y forem verdadeiros
X OR Y => verdadeiro se X ou Y forem verdadeiros
X XOR Y => verdadeiro se apenas um for verdadeiro
X && Y => verdadeiro se X e Y forem verdadeiros
X || Y => verdadeiro se X ou Y forem verdadeiros
• Operadores
– De string
• Há dois operadores de string.
– O primeiro é o operador de concatenação ('.'), que retorna a
concatenação dos seus argumentos direito e esquerdo.
– O segundo é o operador de atribuição de concatenação ('.='), que
acrescenta o argumento do lado direito no argumento do lado esquerdo.
Veja em Operadores de Atribuição para mais informações.
Iniciando com PHP
26/03/2011 52
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$c = "Olá ";
$c .= "mundo!"; // agora $a contém "Olá mundo!"
echo $a;
• Operadores
– Um exercício simples
• Quais são os valores das variáveis $a, $b, $c, $x, $y e $z após a
execução do seguinte programa?
Iniciando com PHP
26/03/2011 53
<?php
$a = 2;
$b = 4;
$c = 6;
$x = --$c + $b;
$y = $b++ + $a;
$z = $a - $b--;

PHP 5.3 - Introdução

  • 1.
    Bacharel em Ciênciada Computação (UFG) Especializando em Engenharia de Software Analista de Sistemas – SIGMA / MDIC Professor Formador EAD – NEAD/ETEB george@georgemendonca.com.br http://www.georgemendonca.com.br Introdução
  • 2.
  • 3.
    • O queé PHP? – PHP: Hypertext Preprocessor – PHP é uma linguagem de script do lado servidor – Scripts PHP são executados no servidor – PHP suporta várias bases de dados (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc) – PHP é um software open source (código aberto) – PHP é gratuito para baixar e utilizar. Introdução 26/03/2011 3
  • 4.
    • O quearquivos PHP podem fazer? – Arquivos PHP podem conter texto, tags HTML e scripts. – Arquivos PHP são retornados para o navegador como HTML simples. – Arquivos PHP tem extensões de arquivo ".php", ".php3", ou ".phtml“. Introdução 26/03/2011 4
  • 5.
    • A históriado PHP – PHP/FI (Personal Home Page / Forms Interpreter): foi criado por Rasmus Lerdorf em 1995 (Pearl). – Em 1997, PHP/FI 2.0, a segunda versão da implementação em C. – PHP 3: totoalmente reescrito em 1997, assemelha ao PHP de hoje. Criado por And Gutmans e Zeev Suraski. Juntamente com Rasmus, lançaram esta versão em junho de 1998. – PHP 4: Zend Engine, mais robusta, profissional, novas características, banco de dados, sessões, etc. – PHP 5: Zend Engine 2, lançado em junho de 2004, novo modelo de Orientação a Objetos, novas características. Introdução 26/03/2011 5
  • 6.
    • Características doPHP – Velocidade e robustez – Estruturado – Suporte a Orientação a Objetos – Portabilidade – Independência de plataforma - "write once run anywhere" (escreva uma vez, rode em qualquer lugar); – Tipagem Fraca – Sintaxe similar a Linguagem C/C++ e o PERL – Curva de aprendizado reduzida – Documentação oficial em português Introdução 26/03/2011 6
  • 7.
    • Características doPHP – Foi criado do zero para a internet em vez de ser a adaptação de uma tecnologia anterior – Grande quantidade de módulos, bibliotecas prontas e frameworks disponíveis – Flexibilidade para desenvolver códigos em outras linguagens. Introdução 26/03/2011 7
  • 8.
    • O quePHP pode fazer? – Qualquer coisa que um script CGI faz e muit mais! • Script no lado do servidor (server-side scripts) – Este é o mais tradicional e principal campo de atuação do PHP • Script de linha de comando. – CLI – Command Line Interface • Escrever aplicações desktop. – PHP-GTK Introdução 26/03/2011 8
  • 9.
    • O quevocê precisa para começar? – Ter acesso a um servidor Web com suporte PHP. – Você pode: • Instalar o servidor web Apache (ou IIS) em seu próprio servidor, instalar o PHP e o banco de dados MySQL, ou outro banco de sua preferência. • Ou executar um instalador e configurador de um ambiente Web para PHP como o WAMP, LAMP, XAMP ou o Zend Server CE. • Ou encontrar um plano de hospedagem web com suporte a PHP e Banco de Dados. Introdução 26/03/2011 9
  • 10.
    • Apache HTTPServer – Servidor HTTP (HyperText Transfer Protocol). – É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. Introdução 26/03/2011 10
  • 11.
    • Apache HTTPServer – Mais bem sucedido servidor web livre – Numa pesquisa realizada em Agosto de 2010 (Pesquisa realizada pelo site Netcraft) foi constatado que a utilização do Apache representa 56% dos servidores ativos no mundo. – Software de licença livre e código aberto. Introdução 26/03/2011 11
  • 12.
    • Apache HTTPServer – Criado para atender às demandas dos maiores provedores e sites web. – Não tem concorrentes quanto à riqueza de recursos, estabilidade, performance, etc. Introdução 26/03/2011 12
  • 13.
    • Apache HTTPServer – Total de sites em todos os domínios de Agosto de 1995 a Agosto de 2010. Introdução 26/03/2011 13
  • 14.
    • Apache HTTPServer – Quota de mercado para os principais servidores em todos os domínios de Agosto de 1995 - agosto 2010. Introdução 26/03/2011 14
  • 15.
    • Apache HTTPServer – Links oficiais: • The Apache Software Foundation • Apache - HTTP Server Project Introdução 26/03/2011 15
  • 16.
    • O ladoCliente – Onde são processadas as diversas formas de interação entre o usuário e o sistema. – Solicitam serviços para efetivar a interação entre usuário e sistema. – Navegador: Fire Fox, IE, Opera, etc. • Responsável por mostrar o conteúdo recebido do servidor. • JavaScript, Cookies, HTML, CSS, imagens, etc. Arquitetura Cliente Servidor 26/03/2011 16
  • 17.
    • O ladoServidor – Estação onde estão sendo executados os aplicativos aos quais os acessos são feitos. – Oferecem serviços especializados aos seus requisitantes. – Repositório de regras de negócios do software web. – Servidor Web, Servidor de Arquivos, Servidor de E-mail, Servidor de Banco de Dados. Arquitetura Cliente Servidor 26/03/2011 17
  • 18.
    Arquitetura Cliente Servidor 26/03/2011 18 Usuário ServidorWeb Aplicação WAN MAN LAN Apache Banco de Dados PHP Cliente (browser) MySQL PgSQL OracleAtivo Passivo Internet
  • 19.
    • Aplicações Web: –Blog – Webmail – E-comerce – Portais Corporativos, Colaborativos, do Conhecimento, etc – Intranet's corporativas – Extranet's – CMS's (Content Management Systems) – Workflow/Groupware Aplicações Web com PHP 26/03/2011 19
  • 20.
    • Aplicações Web: –Sistemas de Informação – ERP's (Enterprise Resource Planning) – Redes sociais: Orkut, Facebook, Linded In, Twitter, etc. • Stand Alone: – PHP GTK (aplicações desktop) • Alguém pode dar mais exemplos? Aplicações Web com PHP 26/03/2011 20
  • 21.
     Como fazero download do PHP?  http://www.php.net/downloads.php  Como instalar o PHP?  http://www.php.net/manual/en/install.php  Como fazer o download do servidor web Apache?  http://httpd.apache.org/download.cgi Informações importantes sobre PHP 26/03/2011 21
  • 22.
    • O primeiroscript Iniciando com PHP 26/03/2011 22 <html> <head> <title>Primeiro Script PHP</title> </head> <body> <?php echo "Primeiro Script em PHP"; ?> </body> </html> Código HTML Código PHP
  • 23.
    • Tags PHP Iniciandocom PHP 26/03/2011 23 // Tag padrão <?php echo "Primeiro Script em PHP"; ?> // Short open tags <script language=“php”> echo "Primeiro Script em PHP"; </script> <? echo "Primeiro Script em PHP"; ?> <% echo "Primeiro Script em PHP"; %>
  • 24.
    • Case Sentitive –Faz distinção entre maiúsculas e minúsculas • Instruções terminadas por “;” • Comentários Iniciando com PHP 26/03/2011 24 // Uma linha # Uma linha /* Mais de uma linha */
  • 25.
    • Comentários PHPDOC Iniciando com PHP 26/03/2011 25 /** * Comentário para PHP DOC * @author George Henrique * @example Aula * @copyright www.georgemendonca.com.br * @version 1.0 * */
  • 26.
    • Variáveis – Éum rótulo que identifica um repositório de dados (local de armazenamento na memória). – Faz referência a um tipo de dado específico, isto é, a um número, a uma letra (caractere), a uma sequência de letras (string), etc. – Possui um escopo, isto é, uma região do código (programa) onde é válida ou pode ser utilizada. Iniciando com PHP 26/03/2011 26
  • 27.
    • Variáveis – Seuuso se dá em dois momentos: • Declaração • Utilização propriamente dita (leitura ou escrita) – São representadas por $, seguidas pelo nome da variável. Iniciando com PHP 26/03/2011 27
  • 28.
    • Variáveis – Atribuídascom o sinal de = • Variável no lado esquerdo, valor no lado direito – Não precisam ser declaradas ou inicializadas. Exemplo: – Atenção: se não for inicializada o valor atribuído será NULO Iniciando com PHP 26/03/2011 28 <?php $nome = "George Henrique"; ?>
  • 29.
    • Tipos deVariáveis – O PHP suporta os oitos tipos primitivos. – São quatros tipos básicos: • boolean (valor verdade, TRUE ou FALSE) • integer (conjunto Z = {..., -2, -1, 0, 1, 2, ...}) • float (número de ponto flutuante, ou também double) • string (série de caracteres) Iniciando com PHP 26/03/2011 29
  • 30.
    • Tipos deVariáveis – Dois tipos compostos: • Array (mapa ordenado) • Object (objeto de uma classe) – E finalmente dois tipos especiais: • Resource (referência a um recurso externo) • NULL (variável sem valor ou não definida) Iniciando com PHP 26/03/2011 30
  • 31.
    • Tipos deVariáveis – O manual também introduz alguns pseudo-tipos por razões de legibilidade: • mixed (indica que um parâmetro pode receber mais de um tipo) • number (indica que um parâmetro pode ser integer ou float) • callback (chamada de funções definidas como parâmetro) – E a pseudo-variável $this. Utilizada para referenciar um objeto de uma classe. Iniciando com PHP 26/03/2011 31
  • 32.
    • Tipos deVariáveis Iniciando com PHP 26/03/2011 32 <?php $bool = TRUE; // um booleano $str = "foo"; // uma string $int = 12; // um inteiro $double = 1.2; // ponto flutuante echo gettype($bool)." <br />"; // imprime "boolean" echo gettype($str)." <br />"; // imprime "string" echo gettype($double)." <br />"; // imprime "double" // Se é um inteiro, incrementa em quatro if (is_int($int)) { echo $int += 4; } // Se for string, imprime conteúdo, caso contrário não faz nada if (is_string($bool)) { echo "String: $bool"; } Saída: boolean string double 16
  • 33.
    • Variáveis variáveis –Utilizado quando se necessita de criar variáveis e utilizá-las dinamicamente: Iniciando com PHP 26/03/2011 33 <?php $variavel_comum = "variavel_dinamica"; $$variavel_comum = "conteúdo da variável dinâmica"; echo $variavel_comum." <br />"; echo $$variavel_comum." <br />"; echo $variavel_dinamica; Saída: variavel_dinamica conteúdo da variável dinâmica
  • 34.
    • Funções úteismostrar informações sobre variáveis: – var_dump($var) • Mostra informações sobre uma variável. – var_export($var) • Representação estruturada de uma variável. – print_r($var) • Imprime informações legíveis sobre uma variável. Iniciando com PHP 26/03/2011 34 <?php $mensagem = "Para frente e avante!"; var_dump($mensagem); echo "<br/>"; var_export($mensagem); echo "<br/>"; print_r($mensagem); Saída: string(21) "Para frente e avante!" 'Para frente e avante!' Para frente e avante!
  • 35.
    • Conversão deTipos – A conversão de tipos no PHP e possível graças a utilização do casting: • (int), (integer) - converte para inteiro • (bool), (boolean) - converte para booleano • (float), (double), (real) - converte para número de ponto flutuante • (string) - converte para string • (binary) - converte para string binária (PHP 6) • (array) - converte para array • (object) - converte para objeto • (unset) - converte para NULL (PHP 5) – Veja: Tabelas de comparação de tipo do PHP – Iniciando com PHP 26/03/2011 35
  • 36.
    • Conversão deTipos Iniciando com PHP 26/03/2011 36 <?php echo "<pre>"; var_dump((bool) "Olá"); var_dump((bool) ""); var_dump((bool) 1); var_dump((bool) array()); var_dump((int)(3/2)); var_dump((integer) 4.5); var_dump((int) 7.5); var_dump(3 + "7.1"); var_dump("10 gatos" + 5); var_dump((string) 5); var_dump(array(1,2)); var_dump((object) array(1,2)); Saída: bool(true) bool(false) bool(true) bool(false) int(1) int(4) int(7) float(10.1) int(15) string(1) "5" array(2) { [0]=> int(1) [1]=> int(2) } object(stdClass)#1 (2) { [0]=> int(1) [1]=> int(2) }
  • 37.
    • Constantes – Umaconstante é um identificador para um valor simples. É um valor que não se altera. – Para definir uma constante, utilizamos a função define(), cuja sintaxe é: Iniciando com PHP 26/03/2011 37 <?php define("NOME", "<VALOR>");
  • 38.
    • Funções úteispara constantes: – defined("NOME_DA_CONSTANTE") • Verifica a existência de uma constante e se ela foi definida. – constant("NOME_DA_CONSTANTE") • Retorna o valor de uma constante. Útil para recuperar constantes quando não se sabe o nome da constante ou quando é retornada por uma função. Iniciando com PHP 26/03/2011 38
  • 39.
    • Exemplo usandoconstantes Iniciando com PHP 26/03/2011 // Nomes de constantes válidos define("TITULO_BLOG", "Meu Blog"); define("MSG_CONTEUDO_BLOG", "Seja bem vindo!"); define("MENSAGEM_POPUP_CADASTRO", "Cadastro realizado com sucesso!"); // Nomes de constantes inválidas define("2VLR", "constante inválida"); // Isto é válido, mas deve ser evitado: define("__TITULOMODULO__", "deve-se evitar"); define("RODAPE_BLOG", "© 2010 by George Mendonça. All rights reserved."); echo TITULO_BLOG."<br />". MSG_CONTEUDO_BLOG."<br />". __TITULOMODULO__."<br />". MENSAGEM_POPUP_CADASTRO."<br />". // 2VLR."<br />". (Error) RODAPE_BLOG; Saída: Meu Blog Seja bem vindo! deve-se evitar Cadastro realizado com sucesso! © 2010 by George Mendonça. All rights reserved.
  • 40.
    • Constantes Pré-definidas –__LINE__ - Retorna a linha atual do arquivo – __FILE__ - Retorna o caminho com o nome do arquivo – __DIR__ - Retorna o diretório. – __FUNCTION__ - Retorna o nome da função atual. – __CLASS__ - Retorna o nome da classe atual. – __METHOD__ - Retorna o do método da classe atual. – __NAMESPACE__ - Retorna o nome atual do namespace. Iniciando com PHP 26/03/2011 40
  • 41.
    • Variáveis SuperGlobais – Variáveis nativas que estão sempre disponíveis em todos os escopos: • $GLOBALS — Referencia todas variáveis disponíveis no escopo global • $_SERVER — Informação do servidor e ambiente de execução • $_GET — HTTP GET variáveis • $_POST — HTTP POST variáveis • $_FILES — HTTP File Upload variáveis • $_REQUEST — Variáveis de requisição HTTP • $_SESSION — Variáveis de sessão • $_ENV — Environment variables • $_COOKIE — HTTP Cookies Iniciando com PHP 26/03/2011 41
  • 42.
    • Variáveis SuperGlobais Iniciando com PHP 26/03/2011 42 echo $_SERVER["PHP_SELF"]."<br />"; echo $_SERVER["HTTP_HOST"]."<br />"; $nome = "George Henrique R. E. Mendonça"; echo $GLOBALS['nome']."<br />"; session_start(); $_SESSION['primeiro_nome'] = "George Henrique"; echo $_SESSION['primeiro_nome']."<br />"; echo $_GET["curso"]."<br />"; // Testar via URL: ?curso=PHP5 echo @$_POST["curso"]; Saída: /aulas-php5.3-oo/02-php/10-variavis-super-globais.php Localhost George Henrique R. E. Mendonça George Henrique PHP5
  • 43.
    • Array – Arraysem PHP são mapas ordenados de chaves e valores, ou seja, você pode atribuir a um elemento do array uma chave e um valor. Iniciando com PHP 26/03/2011 43
  • 44.
    Iniciando com PHP 26/03/201144 <?php $frutas1 = array('banana','maçã','pêra'); $frutas2[] = 'banana'; $frutas2[] = 'maçã'; $frutas2[] = 'pera'; $frutas3 = array ( 0 => 'banana', 1 => 'maçã', 2 => 'pêra' ); $frutas4['frutax'] = 'banana'; $frutas4['frutay'] = 'maçã'; $frutas4['frutaz'] = 'pêra'; echo '<pre>'; print_r($frutas1); print_r($frutas2); print_r($frutas3); print_r($frutas4); Saída: Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [0] => banana [1] => maçã [2] => pera ) Array ( [frutax] => banana [frutay] => maçã [frutaz] => pera )
  • 45.
    Iniciando com PHP 26/03/201145 <?php echo $frutas1[1]; // maçã echo '<br />'; echo $frutas2[0]; // banana echo '<br />'; echo $frutas4['frutaz']; // pêra Saída: maçã banana pêra • Array – Acessando os elementos
  • 46.
    • Operadores – Aritméticos: Iniciandocom PHP 26/03/2011 46 + => ADIÇÃO - => SUBTRAÇÃO * => MULTIPLICAÇÃO / => DIVISÃO - oper => TROCA SINAL ++ oper => PRÉ-INCREMENTO -- oper => PRÉ-DECREMENTO oper ++ => PÓS-INCREMENTO oper -- => PÓS-DECREMENTO
  • 47.
    • Operadores – Comparativos Iniciandocom PHP 26/03/2011 47 X == Y => X IGUAL A Y X >= Y => X MAIOR OU IGUAL A Y X <= Y => X MENOR OU IGUAL A Y X != Y => X DIFERENTE DE Y X <> Y => X DIFERENTE DE Y X > Y => X MAIOR QUE Y X < Y => X MENOR QUE Y
  • 48.
    • Operadores – Deatribuição Iniciando com PHP 26/03/2011 48 $num = 5; => Sinal de igualdade $num += 5; => $num = $num + 5; $num -= 5; => $num = $num - 5; $num *= 5; => $num = $num * 5; $num /= 5; => $num = $num / 5; $nome .= “aluno”; => $nome = $nome.”aluno”; $num1 %= $num2; => $num1 = $num1 % $num2;
  • 49.
    • Operadores – Seo recurso track_errors estiver habilitado, qualquer mensagem de erro gerada pela expressão será gravada na variável global $php_errormsg. Esta variável será sobrescrita em cada erro, assim verifique-a constantemente se você quiser usá-la. – O PHP suporta um operador de controle de erro: o sinal 'arroba' (@). Quando ele precede uma expressão em PHP, qualquer mensagem de erro que possa ser gerada por aquela expressão será ignorada. – $nome = @$__POST['nome']; Iniciando com PHP 26/03/2011 49
  • 50.
    • Operadores – OPHP suporta um operador de execução: acentos graves (``). Note que não são apóstrofes! – O PHP tentará executar o conteúdo dos acentos graves como um comando do shell; a saída será retornada (isto é, ela não será simplesmente descarregada para a saída; ela pode ser atribuída a uma variável). – A utilização do operador contra-apóstrofo é idêntica a função shell_exec(). Iniciando com PHP 26/03/2011 50 $output = `dir`; echo "<pre>$output</pre>";
  • 51.
    • Operadores – Lógicos Iniciandocom PHP 26/03/2011 51 !X => verdadeiro se X for falso X AND Y => verdadeiro se X e Y forem verdadeiros X OR Y => verdadeiro se X ou Y forem verdadeiros X XOR Y => verdadeiro se apenas um for verdadeiro X && Y => verdadeiro se X e Y forem verdadeiros X || Y => verdadeiro se X ou Y forem verdadeiros
  • 52.
    • Operadores – Destring • Há dois operadores de string. – O primeiro é o operador de concatenação ('.'), que retorna a concatenação dos seus argumentos direito e esquerdo. – O segundo é o operador de atribuição de concatenação ('.='), que acrescenta o argumento do lado direito no argumento do lado esquerdo. Veja em Operadores de Atribuição para mais informações. Iniciando com PHP 26/03/2011 52 <?php $a = "Olá "; $b = $a . "mundo!"; // agora $b contém "Olá mundo!" $c = "Olá "; $c .= "mundo!"; // agora $a contém "Olá mundo!" echo $a;
  • 53.
    • Operadores – Umexercício simples • Quais são os valores das variáveis $a, $b, $c, $x, $y e $z após a execução do seguinte programa? Iniciando com PHP 26/03/2011 53 <?php $a = 2; $b = 4; $c = 6; $x = --$c + $b; $y = $b++ + $a; $z = $a - $b--;