mini curso de php

Post on 13-Jan-2017

768 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Minicurso deProgramação PHP

PUC Minas Poços de Caldas - WISM 2013

Prof. Rodrigo Santa Mariarodrigo@digitallymade.com.br

1. Introdução ao PHP2. Configuração do ambiente para

desenvolvimento3. Variáveis em PHP4. Comandos Condicionais e Controle de fluxo5. Controle de fluxo: Switch6. Controle de fluxo: Laços de repetição7. Arrays em PHP8. Funções em PHP9. PHP e Banco de Dados MySQL10.PHP Orientado a Objetos11.Visão Geral: Frameworks PHP

Conteúdo do Minicurso

Sobre o professorProf.RodrigoBuenoSantaMariaE-mail:rodrigo@digitallymade.com.br

FormaçãoAcadêmica• BacharelemCiência daComputaçãopelaPUCMinasPoçosdeCaldas.•MBAExecutivo InternacionalemGerenciamento deProjetospelaFundaçãoGetúlioVargaseOhioUniversity,USA.

FormaçãoProfissional• AnalistaeDesenvolvedorJavanaIBMBrasilpor5anos.•DiretorFundadordaDigitallyMade DesenvolvimentoWebdesde2006,comatuaçãoemtodooBrasil,alémdosEstadosUnidos,Canadá,eJapãocomclientescomoaRedeGloboInternacional - filialTokyo,Japão.• Atuanomercadowebdesde2001comlargaexperiência emprogramaçãowebcomPHP,HTML5,CSS3,Javascript(jQuery),Web2.0eAcessibilidade.•Nashorasvagasatuacomprogramaçãoeintegraçãocomhardware,utilizandoomicrocontroladorArduino.

Comunicação na internet• O cliente (navegador web) requisita uma

página ao servidor.• O servidor web responde a requisição com a

página requisitada e a envia ao cliente.

Cliente(Navegador Web) Servidor Web

Armazenamento(HD)

Armazenamento(Banco de Dados)

Requisição

Retorno

Protocolo HTTP• Hypertext Transfer Protocol (HTTP) é o

protocolo utilizado para enviar e receber informações na web.

• É baseado em requisições e respostas entre clientes e servidores.

• Exemplo de requisição HTTP:– GET / HTTP/1.1

• Foi criado especificamente para a World Wide Web.

Clientes HTTP• Os clientes de uma conexão HTTP são

os browsers (navegadores).• São capazes de enviar requisições

HTTP e processar os retornos recebidos, exibindo a página da web.

• Exemplos: Google Chrome, Internet Explorer, Mozilla Firefox, Opera, etc.

Servidores HTTP• São serviços HTTP que disponibilizam

as páginas na Internet.• Exemplos:

– Apache HTTP Server– Microsoft Internet Information Services

Páginas da internet• São codificadas em linguagem HTML

(HyperText Markup Language, que significa Linguagem de Marcação de Hipertexto).

• Possuem ligações de hipertexto.• São hospedadas por um servidor

web.

A linguagem PHP• PHP = "PHP: Hypertext Preprocessor",

originalmente Personal Home Page.• Criada por Rasmus Lerdorf em 1995.• É executada no lado do servidor.• É interpretada pelo módulo do PHP

instalado no servidor HTTP.• Atualmente na versão 5.5.• Mais em www.php.net

Características da linguagem PHP

• Velocidade, robustez, sintaxe similar à Linguagem C/C++, Perl e Java.

• Portabilidade com independência de plataforma.

• Bem estruturada, suporte a orientação a objetos e tipagem fraca.

• Manual do PHP:– http://php.net/manual/pt_BR/

Exemplo linguagem PHP<?php

echo “Olá mundo!”;

?>

Configuração do ambiente• Passo 1:

– Instalação e configuração do Apache• Passo 2:

– Instalação e configuração do PHP• Passo 3:

– Instalação e configuração do MySQL• Passo 4:

– Instalação e configuração do PhpMyAdmin• Mais detalhes acessar:

– http://goo.gl/Xu68n

Sugestão de Livros

Use a Cabeça! PHP & MySQLEditora: Alta BooksAutor: LYNN BEIGHLEY & MICHAEL MORRISONISBN: 9788576085027

Dominando PHP e MySQLEditora: Alta Books

Autor: W. JASON GILMOREISBN: 9788576083023

A linguagem PHP

• PHP = "PHP: Hypertext Preprocessor", originalmente Personal Home Page.

• Criada por Rasmus Lerdorf em 1995.• É executada no lado do servidor.• É interpretada pelo módulo do PHP

instalado no servidor HTTP.• Atualmente na versão 5.5.• Mais em www.php.net

Grandes sites feitos em PHPConheçaabaixoalgunsgrandessitesdesenvolvidosnestalinguagem:

Características da linguagem PHP• Velocidade, robustez, sintaxe similar à

Linguagem C/C++, Perl e Java.• Portabilidade com independência de

plataforma.• Bem estruturada, suporte a orientação a

objetos e tipagem fraca.• Manual do PHP:

– http://php.net/manual/pt_BR/

Vantagens

• Ótima performance• Comunidade bastante ativa• Suporte de grandes empresas• Possibilidade de geração dinâmica de

imagens, arquivos PDF, etc.• Suporte a ampla variedade de SGBDs• Hospedagem web simples e barata• Extensa API

Desvantagens

• Mistura de programação estruturada com POO

• Facilidade de escrita de código de difícil manutenção

• Linguagem de script (não gera código binário)

• Não é muito bem aceita no mercado corporativo (mas isso está mudando)

Frameworks PHP

• CakePHP, Zend Framework, Symfony, CodeIgniter, Yii framework, Prado, Akelos, etc.

• Pela grande variedade, fica até difícil decidir qual utilizar.

• Mais em:http://www.phpframeworks.com

Configuração Comum:LAMP / WAMP

Mercado de Trabalho

Sobrinhos

• Copiou• Colou• Funcionou• Beleza!

Profissionais

• Atuam de forma profissional

• Estudo constante• Valorizam o mercado• Estão em falta no

mercado

X

Delimitadores

<?php?>

<??>

<%%>

Configuráveis via php.ini

Fortemente recomendado

Palavras Reservadasbreak abstract and array() asclone const case catch classendswitch do continue declare defaultfinal enddeclare echo else elseifgoto endwhile endfor endforeach endifinstanceof for foreach function extendsnamespace if implements include globalprotected insteadof interface print include_oncestatic new or require_once privateunset() public require while return

switch throw tryuse var xor

Comentários• Comentários de uma linha:<php

echo “Teste 1”; // meu comentárioecho “Teste 2”; # meu comentário

?>

• Comentários de mais de uma linha:<php

echo “Teste 1”; /* Este é um comentário que pode ter mais de uma linha */

?>

Olá Mundo – HTML + PHP<html>

<head><title>Exemplo</title>

</head><body>

<?phpecho "Olá, Mundo!";

?></body>

</html>

Atribuições<?php$variavel_1 = "Uma string";$variavel_2 = 'Outra string';

// Concatenando strings

echo $variavel_1 . $variavel_2;

?>

Atribuições<?php$x = 1; // inteiro

$y = 10.99; // float (double)

$z = $x*$y;$a = $x+"1"; // 2 (int)$b = $x."1"; // 11 (string)?>

Estruturas Condicionais<?php$x = 1;if ( $x == 1 ) {

echo "x == 1";} else if ( $x > 1 ) {

echo "x maior que 1";} else {

echo "x menor que 1";}?>

Estruturas de Repetição<?phpfor ( $i=0; $i<=9; $i++ ) {echo ‘$i=‘ . $i;

}echo PHP_EOL; // Quebra de linhawhile ( $i > 0 ) {echo ‘$i=‘ . $i;$i--;}

Arrays<?php$a = array();$a[2009] = "Lancado PHP 5.3";

$a[1995] = 'Criado PHP';

$a[2000] = "Lancado PHP 4";$a[2004] = "Lancado PHP 5";

asort($a);foreach ($a as $ano=>$texto) {

echo "Em {$ano}: $texto" . PHP_EOL ;

}

/*

Em 1995: Criado PHP

Em 2000: Lancado PHP 4

Em 2004: Lancado PHP 5

Em 2009: Lancado PHP 5.3

*/

Funções<?phpfunction somar($a, $b) {

return $a + $b;

}

function debug($a , $tag = '[Debug] ') {

$tipo = gettype($a);echo $tag . $a . " ({$tipo})";

}

echo somar(2,3) . PHP_EOL ; // 5

echo debug("42"); // [Debug] 42 (string)?>

Inclusão de arquivos<?phpinclude '/path/para/arquivo.php';

// include_once

// require

// require_once

$o = new Classe_Do_Arquivo();

?>

Vamos para a prática???

COMANDOS DE CONDIÇÃO –Utilizando if() - else if() - else

Exercício 1

• Escreva um algoritmo PHP que receba um valor gerado aleatoriamente (rand()) e imprima o texto "o valor é maior que 10" caso isso seja verdade, senão imprima "o valor é menor que 10".

Exercício 2

• Escreva um algoritmo PHP que receba um valor gerado aleatoriamente (rand()) e verifique se esse valor é positivo, negativo ou igual a zero. Imprima na tela: "Valor Positivo", "Valor Negativo", "Igual a Zero"

Exercício 3

• Escreva um algoritmo PHP que receba quatro notas de um aluno, calcule e imprima a média aritmética das notas e a mensagem de aprovado para média superior ou igual a 7.0 ou a mensagem de reprovado para média inferior a 7.0.

Exercício 4

• Escreva um algoritmo PHP que receba a altura e o sexo de uma pessoa, calcule e imprima o seu peso ideal, utilizando as seguintes fórmulas:– para homens: (72.7 * H) - 58– para mulheres: (62.1 * H) – 44.7

Exercício 5

• Escreva um algoritmo PHP que calcule e imprima o salário reajustado de um funcionário de acordo com a seguinte regra:– salários até 300, reajuste de 50%– salários maiores que 300, reajuste de

30%

LAÇOS DE REPETIÇÃO –Utilizandndo for() - while() e

funções de String

Exercício 6

• Escreva um algoritmo PHP que receba um valor qualquer e imprima os valores de 0 até o valor recebido, exemplo:– Valor recebido = 9– Impressão do programa – 0 1 2 3 4 5

6 7 8 9

Exercício 7

• Escreva um algoritmo PHP que receba um valor qualquer e calcule o seu fatorial (!), sabendo que fatorial de um número é:– 7! = 7*6*5*4*3*2*1– 4! = 4*3*2*1

Exercício 8

• Escreva um algoritmo PHP que receba dois valores quaisquer e imprime todos os valores intermediários a ele, veja exemplo:– Primeiro Valor = 5– Segundo Valor = 15– Imprime: 6 7 8 9 10 11 12 13 14

Exercício 9

• Escreva um algoritmo PHP que receba dois valores quaisquer e efetue sua multiplicação utilizando para isso apenas o operador “+”, visto que:– (3 * 5) = 5 + 5 + 5– (4 * 12) = 12 + 12 + 12 + 12

Exercício 10

• Escreva um algoritmo PHP que receba uma String, encontre o número total de caracteres desta e imprima todos os números que existem entre 1 e o número total, exemplo:

• String = “Sistemas de Informação”• total_caracteres = 22• Imprime: 1 2 3 4 5 6 7 8 9 10 11 12 13

14 15 16 17 18 19 20 21 22

Dica: strlen();

Exercício 11

• Escreva um algoritmo PHP que receba duas Strings, e descubra se elas são iguais ou diferentes, imprimindo “IGUAL” ou “DIFERENTE” respectivamente.

Exercício 12

• Escreva um algoritmo PHP que receba uma String e um caractere de busca e descubra o número de ocorrências deste caractere dentro da String. Para isso utilize laço de repetição, e as funções de String “strlen()” e “substr()”.

• Arrays– Numéricos– Associativos– Multidimensionais– Funções para Arrays– Exercícios

• Funções em PHP– Introdução– Funções com e sem retorno– Funções com e sem parâmetros– Exercícios

Próximos tópicos

O que são arrays?• Variáveis que guardam um ou mais valores;• Podem ser indexado por números ou strings;

Array ( [Griffin] => Array (

[0] => Peter [1] => Lois [2] => Megan )

[Quagmire] => Array ( [0] => Glenn )

[Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior

) )

PHP – Arrays Numéricos • Armazena cada elemento de forma numérica;• Podem ter seu índice definido de forma

automática;$nomes = array(“Joao",“Maria",“Jose");

• Ou podem ser definidos manualmente:$nomes[5] = “Joao"; $nomes[32] = “Maria"; $nomes[26] = "Jose";

PHP – Arrays Associativos• Cada índice é associado a um valor

(texto);

Exemplo:$idades = array(‘Joao’=>32, ‘Maria’=>30, "Jose"=>34); Ou assim:$ages[“Joao”] = "32"; $ages[“Maria”] = "30"; $ages['Jose'] = "34";

PHP – Arrays Multidimensionais• Em PHP um array multidimensional é

um array que possui como elementos outros arrays;

$familia = array ("Cordeiro" => array ("Marcos", "Marcelo", "Murilo" ),"Pereira" => array ( "Andressa" ),"Silva" => array ( "Renata", "Marcia", "Junior" )

);

PHP – Arrays MultidimensionaisArray

([Cordeiro] => Array

( [0] => Marcos[1] => Marcelo[2] => Murilo

)[Pereira] => Array

([0] => Andressa)

[Silva] => Array([0] => Renata[1] => Marcia[2] => Junior)

)

Acessando Arrays• Para acessar o conteúdo de um Array

basta informar o índice desejado;• Em $famila[“Pereira”][0] temos o valor

“Andressa”;• Outro modo de visualizar o conteúdo de

um array é com a função print_r(array);

Funções para Arrays• Algumas Funções para manipulação de

Arrays:– count() — Conta o número de elementos

de uma variável ex. count($familia); // retorna um int

– in_array() — Checa se um valor existe em um array ex. in_array(“Cordeiro”); //Retorna true/false

– Mais funções podem ser encontradas em: http://www.php.net/manual/pt_BR/ref.array.php

Exercício 1

• Utilizando uma estrutura de repetição monte um array numérico.

Exercício 2

• Calcule a média de 5 números contidos em um array.

Exercício 3

• Melhore o exercício que gerava seis dezenas aleatórias da Mega Sena agora utilizando arrays para não deixar gerar uma dezena repetida.– Dica: use rand(1,60) para gerar números

aleatórios;

Exercício 4

• Crie um array multi-dimensional (matriz) e use print_r() para exibir a estrutura na tela.

Exercício 5

• Crie um array para armazenar os nomes dos meses do ano e utilize a função date(“w”) para exibir o nome do mês atual.– Dica: a função date(“w”) retorna um número

inteiro de 0 a 6, 0 (para domingo) até 6 (para sábado).

Exercício 6

• Crie um programa que entre com os dados de altura e sexo de 10 pessoas.

• Imprima na tela quantas pessoas são do sexo masculino e quantas pessoas são do sexo feminino.

• Mostre também qual é a maior altura e se essa altura é de um homem ou uma mulher

Exercício 7

• Crie um programa que contenha um array com várias idades de pessoas.

• Exiba quantas pessoas são maior de idade (18 anos) e quantas são menores.

Funções em PHP• Funções são usadas para criar pequenos

trechos de códigos separados;• Elas podem gerar um resultado (o que

chamamos de funções com retorno) ou apenas executar uma rotina (funções sem retorno);

• Sua principal vantagem é condensar um trecho do código e torná-lo utilizável em vários pontos diferentes;

• Toda função deve ter um nome e possuir um delimitador de parâmetro que são identificados com parênteses;

Funções sem retorno• Para criar funções em PHP usamos a palavra-

chave function, então, damos um nome para nossa função.

• A regra geral é seguinte:

function nomeDaFuncao($param1, $param2, $param_n){

código da função};

Funções sem retorno• Exemplo de função sem parâmetros de

entrada:

function nomeDaFuncao(){

código da função};

Funções sem retorno• Exemplo de função simples:

<?php

function ola() {echo ("Bem vindo ao PHP");

};

?>

Funções com retorno• Funções com retorno são criadas da mesma

forma das funções sem retorno. Sua diferença principal é que esta função devolve um resultado para o código usando a palavra reservada return;

• Por exemplo, podemos gerar um resultado de uma soma e devolver este resultado para quem chamou esta função;

Funções com retorno• Exemplo:

<?phpfunction mostrarSomar() {

return 50+50;};

echo "A soma de 50 + 50 é " . mostrarSomar();

?>

Funções com parâmetros• Muitas vezes, funções devem receber dados

para processá-los. A inserção de dados na função é dada por meio dos parâmetros ou argumentos da função.

• Uma função pode ter quantos parâmetros forem necessários desde que cada um seja separado por vírgula e não tenha a mesma denominação.

• Parâmetros ou argumentos possuem as mesmas características de uma variável.

Funções com parâmetros• Exemplo:<?phpfunction somar ($x, $y){ return $x+$y; };function subtrair ($x, $y){ return $x-$y; };function multiplicar ($x, $y){ return $x*$y; };function dividir ($x, $y){ return $x/$y; };$nr1 = 10;$nr2 = 5;echo ("<p>Operações matemáticas:</p>" . "<p>$nr1 + $nr2 = " . somar ($nr1, $nr2) . "<br>$nr1 - $nr2 = " . subtrair ($nr1, $nr2) . "<br>$nr1 * $nr2 = " . multiplicar ($nr1, $nr2) . "<br>$nr1 / $nr2 = " . dividir ($nr1, $nr2) . "</p>");?>

Exercício 1

• Escreva um programa em PHP que tenha uma função chamadameuNome() na qual imprime seu nome completo na página.

Exercício 2

• Escreva um programa que tenha uma função chamada soma() comos argumentos x e y. A função deverá fazer a soma dosargumentos passados.

Exercício 3

• Escreva um programa que tenha uma função impares() que imprima os números ímpares entre um determinado intervalo que é dado como argumento da função.

Exercício 4

• Escreva uma função inverso() que imprima a sequência inversa de dois números passados como argumentos da função.

Exercício 5

• Escreva uma função maior() que retorne o maior número de um array de números inteiros.

• Dica: use a função sort() que ordena um array em ordem decrescente e count() que retorna o número total de itens em um array.

• Principais Funções Nativas do PHP– Funções de String– Funções Matemáticas– Funções para Arrays– Funções para Manipulação de Arquivos– Funções para conexão ao MySQL

• Exemplos práticos

Próximos tópicos

Funções de String

Funções de String• string substr ( string $string , int $start [, int $le

ngth ] )

• Retorna parte de uma string.• string: A string de entrada.• start: Se start não for negativo, a string retornada iniciará na

posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante. Se start for negativo, a string retornada irá começar no caractere start a partir do fim de string.

• length: Se length for dado e for positivo, a string retornada irá conter length caracteres começando em start (dependendo do tamanho de string). Se a string é menor do que start, será retornado FALSE. Se length for dado e for negativo, então esta quantidade caracteres serão omitidos do final de string (após a posicão de inicio ter sido calculada quando start for negativo). Se start denota uma posição além da truncagem, uma string vazia será retornada.

Funções de String• int strpos ( string $haystack , string $needle [, i

nt $offset ] )

• Retorna a posição numérica da primeira ocorrência de needle dentro de haystack. Diferentemente de strrpos(), esta função pode ter uma string inteira como o parâmetro needle e toda a string será usada.

• Se needle não for encontrado, strpos() irá retornar o boolean FALSE.

Funções de String• int strlen ( string $string )

• Retorna o tamanho (quantidade de caracteres) da string.• string: A string a ter seu tamanho contado.

Funções de String• string md5 ( string $str [, bool $raw_output ] )

• Calcula o "hash MD5" de str usando » RSA Data Security, Inc. MD5 Message-Digest Algorithm, e devolve esse hash.

• str: A string.• raw_output: Se o opcional raw_output é definido

para TRUE, então o md5 é ao invés retornado no formato binário com um tamanho de 16. Padrão para FALSE.

Funções de String• string htmlspecialchars ( string $string [, int $

quote_style [, string $charset ]] )

• Certos caracteres tem significado especial em HTML, e seriam representados pela realidade HTML se eles estão preservanado seus significados. Esta função retorna uma string com algumas destas conversões feitas; As transformações feitas são aquelas mais úteis para programação web. Se você precisa que sejam transformados todos os caracteres da realidade HTML, use htmlentities() no lugar dela.

• As traduções executadas são:– '&' (ampersand) torna-se '&amp;'– '"' (aspas dupla) torna-se '&quot;' quando ENT_NOQUOTES não está definida.– ''' (aspas simples) torna-se '&#039;' apenas quando ENT_QUOTES está definida.– '<' (menor que) torna-se '&lt;'– '>' (maior que) torna-se '&gt;'

Funções de String• string htmlspecialchars ( string $string [, int $

quote_style [, string $charset ]] )

• Certos caracteres tem significado (notação) especial em HTML. Esta função retorna uma string com algumas destas conversões feitas; As transformações feitas são aquelas mais úteis para programação web.

• As traduções executadas são:– '&' (ampersand) torna-se '&amp;'– '"' (aspas dupla) torna-se '&quot;' quando ENT_NOQUOTES não está

definida.– ''' (aspas simples) torna-se '&#039;' apenas quando ENT_QUOTES está

definida.– '<' (menor que) torna-se '&lt;'– '>' (maior que) torna-se '&gt;'

Funções de String• string htmlentities ( string $string [, int $quote

_style [, string $charset [, bool $double_encode]]] )

• Esta função é idêntica a htmlspecialchars(), exceto que com htmlentities(), todos caracteres que tem entidade HTML equivalente são convertidos para estas entidades.

• Algumas das traduções executadas são:– º para '&ordm;‘– ª para '&ordf;‘– á para '&aacute;‘– ç para '&ccedil;'

Funções de String• string nl2br ( string $string )

• Retorna string com '<br />' inserido antes de todas as newlines.

• string: A string de entrada.

Funções de String• array get_meta_tags ( string $filename [, bool

$use_include_path ] )• Abre um arquivo html e percorre o cabeçalho em busca de

"meta" tags, Devolvendo num array todos os valores encontrados.

• Exemplo:No arquivo teste.html temos:...<head><meta name="author" content="jose"><meta name="tags" content="php3 documentation">...</head><!-- busca encerra aqui -->...

• Execução da função:get_meta_tags("teste.html");–Devolve o array:array("author"=>"jose","tags"=>"php3 documentation");

Funções de String• string strip_tags ( string $str [, string $allowabl

e_tags ] )

• Esta função retorna uma string retirando todas as tags HTML e PHP de str.

• str: A string de entrada.• allowable_tags: Você pode utilizar o segundo parâmetro, que é opcional, para

indicar tags que não devam ser retiradas.

Funções de String• string urlencode ( string $str )

• Devolve a string fornecida, convertida para o formato urlencode. Esta função é útil para passar variáveis para uma próxima página.

• Exemplo:<?phpecho '<a href=“meuscript.php?var=', urlencode($entrada_usuario), '">';?>

Funções de String• string urldecode ( string $str )

• Funciona de maneira inversa a urlencode, desta vez decodificando a string fornecida do formato urlencode para texto normal.

Funções de String• mixed str_replace ( mixed $search , mixed $re

place , mixed $subject [, int &$count ] )

• Esta função retorna uma string ou um array com todas as ocorrências de search em subject substituídas com o valor dado para replace.

Funções de String• string number_format ( float $number [, int $d

ecimals = 0 ] )

• Formata uma variável float em um número usando virgulas e pontos para formatação do valor.

<?php$number = 1200.5;$reais = number_format($number, 2, ‘.', ‘,');echo $reais;?>

Funções de String• Outras funções comuns:Função Descrição

string strtolower ( string $str ) Retorna string com todos os caracteres do alfabeto convertidos para minúsculas.

string strtoupper ( string $string ) Retorna string com todos os caracteres do alfabeto convertidos para maiúsculas.

string ucwords ( string $str ) Retorna uma string com o primeiro caractere de cada palavra em str em maiúscula, se este caractere fizer parte do alfabeto.

string trim ( string $str [, string $charlist ] )

Retira espaço no ínicio e final de uma string

Funções Matemáticas

Funções Matemáticas• float round ( float $val [, int $precision ] )

• Retornar um valor arredondado de val em precision casas decimais. precision pode ser negativo ou zero (padrão).

• val: O valor para arredondar• precision: O número opcional de dígitos decimais para arredondar, o padrão é 0

Funções Matemáticas• float ceil ( float $value )

• Retorna o próximo maior valor inteiro arredondando para cima do value, se fracionário.

• value: O valor para arredondar

Funções Matemáticas• float floor ( float $value )

• Retorna o próximo menor valor inteiro ao se arredondar para baixo o valor, se necessário.

• value: O valor para arredondar

Funções Matemáticas• number pow ( number $base , number $exp )

• Retorna a base elevada ao expoente exp.

• base: A base para usar• exp: O expoente

Funções Matemáticas• float sqrt ( float $arg )

• Retorna a raiz quadrada de arg.

• arg: O argumento para processar

Funções Matemáticas• Outras funções comuns:Função Descrição

float tan ( float $arg ) tan() retorna a tangente do parâmetro arg. O argumento arg deve estar em radianos.

float sin ( float $arg ) sin() retorna o seno do parâmetro arg. O argumento arg deve estar em radianos.

float cos ( float $arg ) cos() retorna o coseno de arg. O parâmetro arg deve estar em radianos.

float log ( float $arg [, float $base ] )

Se o parâmetro opcional base for informado, log() retorna logbase arg, senão log() retorna o logaritmo natural de arg.

Funções de Arrays

Funções de Arrays• bool shuffle ( array &$array )

• Essa função mistura de forma aleatória os elementos de um array.

Funções de Arrays• bool sort ( array &$array [, int $sort_flags ] )

• Essa função ordena um array. Os elementos serão ordenados do menor para o maior ao final da execução dessa função.

Funções de Arrays• bool rsort ( array &$array [, int $sort_flags ] )

• Essa função ordena um array em ordem descrescente (do maior para o menor).

Funções de Arrays• string implode ( string $glue , array $pieces )

• Retorna uma string contendo os elementos da matriz na mesma ordem com uma ligação entre cada elemento.

<?php

$array = array('lastname', 'email', 'phone');$comma_separated = implode(",", $array);

print $comma_separated; // lastname,email,phone

?>

Funções de Arrays• array explode ( string $delimiter , string $string

[, int $limit ] )

• Retorna uma matriz de strings, cada uma como substring de string formada pela divisão dela a partir do delimiter.

<?php// Example 1$pizza = "piece1 piece2 piece3 piece4 piece5piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2

...?>

Funções de Arrays• int count ( mixed $var [, int $mode ] )

• Conta os elementos de um array, ou propriedades em um objeto.

<?php$a[0] = 1;$a[1] = 3;$a[2] = 5;$result = count($a);// $result == 3?>

Funções de Arrays• array array_merge ( array $array1 [, array $arr

ay2 [, array $... ]] )

• Funde os elementos dois ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.

<?php$array1 = array("cor" => "vermelho", 2, 4);$array2 = array("a", "b", "cor" => "verde",

"forma" => "trapezoide", 4);$result = array_merge($array1, $array2);print_r($result);?>

Funções de Manipulaçãode Arquivos

Funções de Manipulação de Arquivos

• resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

• fopen() conecta um recurso nomeado, especificado por filename, a um stream.

• <?php$handle = fopen("/home/rasmus/file.txt", "r");

• ?>

Funções de Manipulação de Arquivos

• bool fclose ( resource $handle )

• O arquivo apontado por handle é fechado.

• <?phpfclose($handle);

• ?>

Funções de Manipulação de Arquivos

• string fgets ( resource $handle [, int $length ] )

• Retorna uma linha do ponteiro do arquivo.

<?php$handle = @fopen("/tmp/arquivodeentrada.txt",

"r");if ($handle) {

while (!feof($handle)) {$buffer = fgets($handle, 4096);echo $buffer;

}fclose($handle);

}?>

Funções de Manipulação de Arquivos

• array file ( string $filename [, int $flags [, resource $context ]] )

• Carrega todo um arquivo em um array.

<?php$lines = file ('http://www.example.com/');

foreach ($lines as $line_num => $line) {echo "Linha #<b>{$line_num}</b> : " .

htmlspecialchars($line) . "<br>\n";}

?>

Funções de Manipulação de Arquivos

• string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int $maxlen ]]]] )

• Carrega todo um arquivo para uma string.

<?php

$arquivo = file_get_contents(‘teste.txt');echo $arquivo;

?>

Funções de Conexãocom o MySQL

Funções de Conexão com o MySQL

• resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

• Abre ou reutiliza uma conexão com um servidor MySQL.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Não foi possível conectar: ' . mysql_error());

}echo 'Conexão bem sucedida';mysql_close($link);?>

Funções de Conexão com o MySQL

• bool mysql_close ([ resource $link_identifier ] )

• Fecha a conexão MySQL.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Não foi possível conectar: ' . mysql_error());

}echo 'Conexão bem sucedida';mysql_close($link);?>

Funções de Conexão com o MySQL

• string mysql_error ([ resource $link_identifier ] )

• Retorna o texto da mensagem de erro da operação MySQL anterior.

<?php$link = mysql_connect("localhost", "mysql_user",

"mysql_password");

mysql_select_db("nonexistentdb", $link);echo mysql_errno($link) . ": " . mysql_error($link).

"\n";?>

Funções de Conexão com o MySQL

• bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

• Seleciona um banco de dados MySQL. Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Not connected : ' . mysql_error());}

// seleciona o db$db_selected = mysql_select_db(‘teste', $link);if (!$db_selected) {

die (‘Erro ao selecionar o DB teste: ' . mysql_error());

}?>

Funções de Conexão com o MySQL

• resource mysql_query ( string $query [, resource $link_identifier ] )

• Envia uma consulta MySQL.

<?php$result = mysql_query('SELECT * WHERE 1=1');if (!$result) {

die('Invalid query: ' . mysql_error());}

?>

Funções de Conexão com o MySQL

• array mysql_fetch_array ( resource $result [, int $result_type ] )

• Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

<?phpmysql_connect("localhost", "mysql_user",

"mysql_password") ordie("Não foi possível conectar: " . mysql_error());

mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result)) {printf("ID: %s Name: %s", $row[“id”],

$row[“name”]); }mysql_free_result($result);?>

Funções de Conexão com o MySQL

• bool mysql_free_result ( resource $result )

• Libera um resultado da memória.

<?php$result = mysql_query("SELECT id,email FROM people WHERE id =

'42'");if (!$result) {

echo 'Não foi possível executar a consulta: ' . mysql_error();exit;

}

$row = mysql_fetch_assoc($result);

mysql_free_result($result);

echo $row['id'];echo $row['email'];?>

• Conexão PHP ao MySQL• Diagrama de funcionamento• Funções de conexão com o MySQL• Exercícios práticos

Próximos tópicos

Conexão PHP ao MySQL• PHP e MySQL formam um conjunto poderoso

para o desenvolvimento de aplicações web que utilizam bancos de dados.

• O PHP permite conexões de forma nativa na linguagem, possibilitando facilidade na utilização de bancos de dados.

• Além do MySQL, a linguagem PHP suporta diversos SGBD's como Oracle, Sybase, Interbase(Firebird), mSQL, Microsoft SQL Server, MSSQL, MySQL, PostgreSQL, entre outros.

Diagrama de Funcionamento

Banco de DadosMySQL

Aplicação PHPUsuário Final

(front-end)SQL Interação

Importante saber:•Host (endereço) do servidor•Usuário•Senha•Nome do banco de dados

Funções de Conexãocom o MySQL

Funções de Conexão com o MySQL

• Abaixo temos uma lista das funções mais utilizadas quando estamos lidando com conexão ao MySQL. Veremos em detalhes a seguir.– mysql_connect()– mysql_close()– mysql_select_db()– mysql_error()– mysql_errorno()– mysql_query()– mysql_fetch_array()– mysql_free_result()

Funções de Conexão com o MySQL

• resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

• Abre ou reutiliza uma conexão com um servidor MySQL.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Não foi possível conectar: ' . mysql_error());

}echo 'Conexão bem sucedida';mysql_close($link);?>

Funções de Conexão com o MySQL

• bool mysql_close ([ resource $link_identifier ] )

• Fecha a conexão MySQL.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Não foi possível conectar: ' . mysql_error());

}echo 'Conexão bem sucedida';mysql_close($link);?>

Funções de Conexão com o MySQL

• bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

• Seleciona um banco de dados MySQL. Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

<?php$link = mysql_connect('localhost', 'mysql_user',

'mysql_password');if (!$link) {

die('Not connected : ' . mysql_error());}

// seleciona o db$db_selected = mysql_select_db(‘teste', $link);if (!$db_selected) {

die (‘Erro ao selecionar o DB teste: ' . mysql_error());

}?>

Funções de Conexão com o MySQL

• string mysql_error ([ resource $link_identifier ] )

• Retorna o número do erro da ultima função MySQL.

<?php$link = mysql_connect("localhost", "mysql_user",

"mysql_password");

mysql_select_db(”bd_inesistente", $link);Echo mysql_error($link). "\n";?>

Funções de Conexão com o MySQL

• int mysql_errorno ([ resource $link_identifier ] )

• Retorna o texto da mensagem de erro da operação MySQL anterior.

<?php$link = mysql_connect("localhost", "mysql_user",

"mysql_password");

mysql_select_db(”bd_inesistente", $link);echo “Erro nro ”.mysql_errno($link) . "\n";?>

Funções de Conexão com o MySQL

• resource mysql_query ( string $query [, resource $link_identifier ] )

• Envia uma consulta MySQL.

<?php$result = mysql_query('SELECT * WHERE 1=1');if (!$result) {

die(’Query Inválida: ' . mysql_error());}

?>

Funções de Conexão com o MySQL

• array mysql_fetch_array ( resource $result [, int $result_type ] )

• Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

<?phpmysql_connect("localhost", "mysql_user",

"mysql_password") ordie("Não foi possível conectar: " . mysql_error());

mysql_select_db("mydb");

$result = mysql_query("SELECT id, nomeFROM tabela");

while ($row = mysql_fetch_array($result)) {printf("ID: %s Nome: %s", $row[“id”],

$row[“name”]); }mysql_free_result($result);?>

Funções de Conexão com o MySQL

• bool mysql_free_result ( resource $result )

• Libera um resultado da memória.

<?php$result = mysql_query("SELECT id, email FROM pessoa WHERE id =

'42'");if (!$result) {

echo 'Não foi possível executar a consulta: ' . mysql_error();exit;

}

$row = mysql_fetch_assoc($result);

mysql_free_result($result);

echo $row['id'];echo $row['email'];?>

ExercíciosPráticos

Exercícios• 1) Crie um mural de recados em PHP com MySQL.

Os dados a serem solicitados são:–Nome–E-mail–Cidade–Recado

–Todos os dados deverão ficar salvos em um banco de dados a ser criado.

–Haverá uma página para o usuário fazer a inserção do recado e outra página para fazer a leitura dos recados.

Exercícios• 2) Crie um sistema de biblioteca onde seja possível

buscar livros pelo título e listar os livros cadastrados.

Os dados dos livros são:–Nome–Autor–Editora–Resenha

–Haverá uma página para a listagem de todos os livros cadastrados.–Haverá um campo de busca que irá filtrar os livros e exibir na mesma listagem.–Cada item da listagem deverá exibir apenas o nome do livro e conter um link que levará a outra página com todos os dados do livro.

• PHP Orientado a Objetos (OO)– Similaridade com Java– Definição de classes– Interfaces– Heranças

Próximos tópicos

PHP OO – Similaridade com Java

• A programação PHP utilizando orientação a objetos lembra muito o Java.

• O PHP permite a criação de classes, com métodos e atributos private, public, protected e static.

Classes em PHP• Abaixo um trecho de código de uma

classe:

class teste() {

}

$objeto = new teste();

Interfaces em PHP• Interfaces de Objetos permite a criação

de código que especifica quais métodos e variáveis uma classe deve implementar, sem ter que definir como esses métodos serão tratados.

• Interfaces são definidas usando a palavra-chave 'interface', da mesma maneira que uma classe comum, mas sem nenhum dos métodos ter seu conteúdo definido.

class teste() {

Interfaces em PHPinterface minhaInterface() {

public functionsetVar($var);

public function getHTML();

}

Utilizando uma interfaceclass Teste implements minhaInterface() {

public function setVar($var){...}

public function getHTML(){...}

}

PHP OO – Herança

• Herança é a caracteristica de um filho obter algumas características do pai.

• Através da herança entre classes, uma classe filha herda atributos e métodos da classe pai.

• Não existem limite de níveis de herança, porém, múltipla herança explícita não é suportada no PHP.

Herança em PHP<?phpclass Veiculo{

public $marcha;public $quantidadeRodas;public function passarMarcha(){

// código}public function andar(){

// código}

}

?>

Herança em PHP<?php

class Carro extends Veiculo{

public function __construct(){

$this->quantidadeRodas = 4;}

}

$carro = new Carro();$carro->andar();?>

• Frameworks PHP– Definição– Frameworks mais usados– Vantagens– Desvantagens

• Framework CodeIgniter– Introdução– Padrão MVC– Exercícios práticos

Próximos tópicos

Frameworks PHP: O que são?• Os frameworks, sejam eles escritos em PHP

ou em qualquer outra linguagem, oferecem ao programador um conjunto de códigos prontos que permitem realizar as tarefas predefinidas no desenvolvimento de um aplicativo. Por oferecer essa estrutura básica, os frameworks tornam o desenvolvimento mais rápido e reduzem o volume de código repetitivo escrito pelo programador.

• Os frameworks também ajudam os programadores iniciantes a criar aplicativos mais estáveis, mesmo que eles ainda não dominem completamente a linguagem de programação e todas as outras tecnologias necessárias para fazer o aplicativo funcionar.

Frameworks PHP mais usados1. Yii2. CodeIgniter3. CakePHP4. Zend5. Symfony6. PHPDevShell7. Prado8. Akelos9. ZooP10.QPHP

Fonte: http://www.phpframeworks.com/top-10-php-frameworksEm Maio de 2013

Frameworks: Vantagens• Código previamente testado• Grande base de uso (reutilização de código)• Não precisa “reinventar a roda”• Experiência agregada• Enfoque no mais importante: as regras de

negócios• Agilidade no desenvolvimento• Melhor segurança• Melhor estabilidade

Frameworks: Desvantagens• Performance• Curva de aprendizado• Dependência

Framework CodeIgniter• Desenvolvido pela empresa Ellis Lab• Licença liberada para uso em qualquer tipo de

projeto (inclusive comerciais)• Ótima documentação• Grande comunidade de desenvolvedores• Comprometimento com os usuários• Estruturado em MVC• Small footprint• Baixa curva de aprendizado• Versão Atual: 2.1.4

Padrão MVC• É um padrão de projeto (design pattern)• Acrônimo para Model, View, Controller• Separa a lógica da aplicação da interface do

usuário• Permite desenvolver e testar cada parte do

sistema de forma independente

Padrão MVC

Padrão MVC• Um controlador (controller) pode enviar

comandos para sua visão associada para alterar a apresentação da visão do modelo (por exemplo, percorrendo um documento). Ele também pode enviar comandos para o modelo para atualizar o estado do modelo (por exemplo, editando um documento).

Padrão MVC• Um modelo (model) notifica suas visões e

controladores associados quando há uma mudança em seu estado. Esta notificação permite que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação passiva do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las.

Padrão MVC• A visão (view) solicita do modelo a informação

que ela necessita para gerar uma representação de saída.

Exercícios Práticos• Hello World em CodeIgniter

Prof. Rodrigo Santa Mariarodrigo@digitallymade.com.br

facebook.com/rodrigobsm

Contato

top related