php 5.3 - introdução

53
Bacharel em Ciência da Computação (UFG) Especializando em Engenharia de Software Analista de Sistemas – SIGMA / MDIC Professor Formador EAD – NEAD/ETEB [email protected] http://www.georgemendonca.com.br Introdução

Upload: george-mendonca

Post on 06-Jun-2015

3.473 views

Category:

Education


4 download

TRANSCRIPT

Bacharel em Ciência da Computação (UFG) Especializando em Engenharia de Software

Analista de Sistemas – SIGMA / MDIC

Professor Formador EAD – NEAD/ETEB [email protected]

http://www.georgemendonca.com.br

Introdução

• 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

Oracle Ativo

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--;