Mini Curso de PHP

1.087 visualizações

Publicada em

Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.

Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.087
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
94
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mini Curso de PHP

  1. 1. Minicurso de Programação PHP PUC Minas Poços de Caldas - WISM 2013 Prof. Rodrigo Santa Maria rodrigo@digitallymade.com.br
  2. 2. 1. Introdução ao PHP 2. Configuração do ambiente para desenvolvimento 3. Variáveis em PHP 4. Comandos Condicionais e Controle de fluxo 5. Controle de fluxo: Switch 6. Controle de fluxo: Laços de repetição 7. Arrays em PHP 8. Funções em PHP 9. PHP e Banco de Dados MySQL 10.PHP Orientado a Objetos 11.Visão Geral: Frameworks PHP Conteúdo do Minicurso
  3. 3. Sobre o professor Prof. Rodrigo Bueno Santa Maria E-mail: rodrigo@digitallymade.com.br Formação Acadêmica • Bacharel em Ciência da Computação pela PUC Minas Poços de Caldas. • MBA Executivo Internacional em Gerenciamento de Projetos pela Fundação Getúlio Vargas e Ohio University, USA. Formação Profissional • Analista e Desenvolvedor Java na IBM Brasil por 5 anos. • Diretor Fundador da DigitallyMade Desenvolvimento Web desde 2006, com atuação em todo o Brasil, além dos Estados Unidos, Canadá, e Japão com clientes como a Rede Globo Internacional - filial Tokyo, Japão. • Atua no mercado web desde 2001 com larga experiência em programação web com PHP, HTML5, CSS3, Javascript (jQuery), Web 2.0 e Acessibilidade. • Nas horas vagas atua com programação e integração com hardware, utilizando o microcontrolador Arduino.
  4. 4. 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
  5. 5. 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.
  6. 6. 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.
  7. 7. Servidores HTTP • São serviços HTTP que disponibilizam as páginas na Internet. • Exemplos: – Apache HTTP Server – Microsoft Internet Information Services
  8. 8. 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.
  9. 9. 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
  10. 10. 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/
  11. 11. Exemplo linguagem PHP <?php echo “Olá mundo!”; ?>
  12. 12. 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
  13. 13. Sugestão de Livros Use a Cabeça! PHP & MySQL Editora: Alta Books Autor: LYNN BEIGHLEY & MICHAELMORRISON ISBN: 9788576085027 Dominando PHP e MySQL Editora: Alta Books Autor: W. JASON GILMORE ISBN: 9788576083023
  14. 14. 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
  15. 15. Grandes sites feitos em PHP Conheça abaixo alguns grandes sites desenvolvidos nesta linguagem:
  16. 16. 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/
  17. 17. 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
  18. 18. 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)
  19. 19. 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
  20. 20. Configuração Comum: LAMP / WAMP
  21. 21. 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
  22. 22. Delimitadores <?php ?> <? ?> <% %> Configuráveis via php.ini Fortemente recomendado
  23. 23. Palavras Reservadas break abstract and array() as clone const case catch class endswitch do continue declare default final enddeclare echo else elseif goto endwhile endfor endforeach endif instanceof for foreach function extends namespace if implements include global protected insteadof interface print include_once static new or require_once private unset() public require while return switch throw try use var xor
  24. 24. Comentários • Comentários de uma linha: <php echo “Teste 1”; // meu comentário echo “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 */ ?>
  25. 25. Olá Mundo – HTML + PHP <html> <head> <title>Exemplo</title> </head> <body> <?php echo "Olá, Mundo!"; ?> </body> </html>
  26. 26. Atribuições <?php $variavel_1 = "Uma string"; $variavel_2 = 'Outra string'; // Concatenando strings echo $variavel_1 . $variavel_2; ?>
  27. 27. Atribuições <?php $x = 1; // inteiro $y = 10.99; // float (double) $z = $x*$y; $a = $x+"1"; // 2 (int) $b = $x."1"; // 11 (string) ?>
  28. 28. 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"; } ?>
  29. 29. Estruturas de Repetição <?php for ( $i=0; $i<=9; $i++ ) { echo ‘$i=‘ . $i; } echo PHP_EOL; // Quebra de linha while ( $i > 0 ) { echo ‘$i=‘ . $i; $i--; }
  30. 30. 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 */
  31. 31. Funções <?php function 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) ?>
  32. 32. Inclusão de arquivos <?php include '/path/para/arquivo.php'; // include_once // require // require_once $o = new Classe_Do_Arquivo(); ?>
  33. 33. Vamos para a prática???
  34. 34. COMANDOS DE CONDIÇÃO – Utilizando if() - else if() - else
  35. 35. 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".
  36. 36. 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"
  37. 37. 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.
  38. 38. 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
  39. 39. 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%
  40. 40. LAÇOS DE REPETIÇÃO – Utilizandndo for() - while() e funções de String
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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();
  46. 46. 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.
  47. 47. 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()”.
  48. 48. • 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
  49. 49. 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 ) )
  50. 50. 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";
  51. 51. 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";
  52. 52. 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" ) );
  53. 53. PHP – Arrays Multidimensionais Array ( [Cordeiro] => Array ( [0] => Marcos [1] => Marcelo [2] => Murilo ) [Pereira] => Array ( [0] => Andressa ) [Silva] => Array ( [0] => Renata [1] => Marcia [2] => Junior ) )
  54. 54. 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);
  55. 55. 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
  56. 56. Exercício 1 • Utilizando uma estrutura de repetição monte um array numérico.
  57. 57. Exercício 2 • Calcule a média de 5 números contidos em um array.
  58. 58. 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;
  59. 59. Exercício 4 • Crie um array multi-dimensional (matriz) e use print_r() para exibir a estrutura na tela.
  60. 60. 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).
  61. 61. 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
  62. 62. 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.
  63. 63. 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;
  64. 64. 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 };
  65. 65. Funções sem retorno • Exemplo de função sem parâmetros de entrada: function nomeDaFuncao() { código da função };
  66. 66. Funções sem retorno • Exemplo de função simples: <?php function ola() { echo ("Bem vindo ao PHP"); }; ?>
  67. 67. 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;
  68. 68. Funções com retorno • Exemplo: <?php function mostrarSomar() { return 50+50; }; echo "A soma de 50 + 50 é " . mostrarSomar(); ?>
  69. 69. 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.
  70. 70. Funções com parâmetros • Exemplo: <?php function 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>"); ?>
  71. 71. Exercício 1 • Escreva um programa em PHP que tenha uma função chamada meuNome() na qual imprime seu nome completo na página.
  72. 72. Exercício 2 • Escreva um programa que tenha uma função chamada soma() com os argumentos x e y. A função deverá fazer a soma dos argumentos passados.
  73. 73. 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.
  74. 74. Exercício 4 • Escreva uma função inverso() que imprima a sequência inversa de dois números passados como argumentos da função.
  75. 75. 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.
  76. 76. • 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
  77. 77. Funções de String
  78. 78. 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.
  79. 79. 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.
  80. 80. Funções de String • int strlen ( string $string ) • Retorna o tamanho (quantidade de caracteres) da string. • string: A string a ter seu tamanho contado.
  81. 81. 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.
  82. 82. 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 '''apenas quando ENT_QUOTES está definida. – '<' (menor que) torna-se '&lt;' – '>' (maior que) torna-se '&gt;'
  83. 83. 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 ''' apenas quando ENT_QUOTES está definida. – '<' (menor que) torna-se '&lt;' – '>' (maior que) torna-se '&gt;'
  84. 84. 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;'
  85. 85. Funções de String • string nl2br ( string $string ) • Retorna string com '<br />' inserido antes de todas as newlines. • string: A string de entrada.
  86. 86. 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");
  87. 87. 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.
  88. 88. 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: <?php echo '<a href=“meuscript.php?var=', urlencode($entrada_usuario), '">'; ?>
  89. 89. 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.
  90. 90. 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.
  91. 91. 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; ?>
  92. 92. 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 $c harlist ] ) Retira espaço no ínicio e final de uma string
  93. 93. Funções Matemáticas
  94. 94. 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
  95. 95. 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
  96. 96. 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
  97. 97. 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
  98. 98. Funções Matemáticas • float sqrt ( float $arg ) • Retorna a raiz quadrada de arg. • arg: O argumento para processar
  99. 99. 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.
  100. 100. Funções de Arrays
  101. 101. Funções de Arrays • bool shuffle ( array &$array ) • Essa função mistura de forma aleatória os elementos de um array.
  102. 102. 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.
  103. 103. 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).
  104. 104. 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,phon e ?>
  105. 105. 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 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 ... ?>
  106. 106. 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 ?>
  107. 107. 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); ?>
  108. 108. Funções de Manipulação de Arquivos
  109. 109. Funções de Manipulação de Arquivos • resource fopen ( string $filename , string $mod e [, 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"); • ?>
  110. 110. Funções de Manipulação de Arquivos • bool fclose ( resource $handle ) • O arquivo apontado por handle é fechado. • <?php fclose($handle); • ?>
  111. 111. 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); } ?>
  112. 112. Funções de Manipulação de Arquivos • array file ( string $filename [, int $flags [, resou rce $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"; } ?>
  113. 113. Funções de Manipulação de Arquivos • string file_get_contents ( string $filename [, in t $flags [, resource $context [, int $offset [, int $ maxlen ]]]] ) • Carrega todo um arquivo para uma string. <?php $arquivo = file_get_contents(‘teste.txt'); echo $arquivo; ?>
  114. 114. Funções de Conexão com o MySQL
  115. 115. Funções de Conexão com o MySQL • resource mysql_connect ([ string $server [, str ing $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); ?>
  116. 116. 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); ?>
  117. 117. 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"; ?>
  118. 118. Funções de Conexão com o MySQL • bool mysql_select_db ( string $database_na me [, 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()); } ?>
  119. 119. Funções de Conexão com o MySQL • resource mysql_query ( string $query [, resour ce $link_identifier ] ) • Envia uma consulta MySQL. <?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); } ?>
  120. 120. Funções de Conexão com o MySQL • array mysql_fetch_array ( resource $result [, i nt $result_type ] ) • Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante. <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("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); ?>
  121. 121. 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']; ?>
  122. 122. • Conexão PHP ao MySQL • Diagrama de funcionamento • Funções de conexão com o MySQL • Exercícios práticos Próximos tópicos
  123. 123. 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.
  124. 124. Diagrama de Funcionamento Banco de Dados MySQL Aplicação PHP Usuário Final (front-end) SQL Interação Importante saber: •Host (endereço) do servidor •Usuário •Senha •Nome do banco de dados
  125. 125. Funções de Conexão com o MySQL
  126. 126. 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()
  127. 127. Funções de Conexão com o MySQL • resource mysql_connect ([ string $server [, str ing $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); ?>
  128. 128. 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); ?>
  129. 129. Funções de Conexão com o MySQL • bool mysql_select_db ( string $database_na me [, 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()); } ?>
  130. 130. 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"; ?>
  131. 131. 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"; ?>
  132. 132. Funções de Conexão com o MySQL • resource mysql_query ( string $query [, resour ce $link_identifier ] ) • Envia uma consulta MySQL. <?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die(’Query Inválida: ' . mysql_error()); } ?>
  133. 133. Funções de Conexão com o MySQL • array mysql_fetch_array ( resource $result [, i nt $result_type ] ) • Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante. <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("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); ?>
  134. 134. 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']; ?>
  135. 135. Exercícios Práticos
  136. 136. 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.
  137. 137. 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.
  138. 138. • PHP Orientado a Objetos (OO) – Similaridade com Java – Definição de classes – Interfaces – Heranças Próximos tópicos
  139. 139. 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.
  140. 140. Classes em PHP • Abaixo um trecho de código de uma classe: class teste() { } $objeto = new teste();
  141. 141. 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.
  142. 142. Interfaces em PHP interface minhaInterface() { public function setVar($var); public function getHTML(); }
  143. 143. Utilizando uma interface class Teste implements minhaInterface() { public function setVar($var){ ... } public function getHTML(){ ... } }
  144. 144. 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.
  145. 145. Herança em PHP <?php class Veiculo { public $marcha; public $quantidadeRodas; public function passarMarcha() { // código } public function andar() { // código } } ?>
  146. 146. Herança em PHP <?php class Carro extends Veiculo { public function __construct() { $this->quantidadeRodas = 4; } } $carro = new Carro(); $carro->andar(); ?>
  147. 147. • Frameworks PHP – Definição – Frameworks mais usados – Vantagens – Desvantagens • Framework CodeIgniter – Introdução – Padrão MVC – Exercícios práticos Próximos tópicos
  148. 148. 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.
  149. 149. Frameworks PHP mais usados 1. Yii 2. CodeIgniter 3. CakePHP 4. Zend 5. Symfony 6. PHPDevShell 7. Prado 8. Akelos 9. ZooP 10.QPHP Fonte: http://www.phpframeworks.com/top-10-php-frameworks Em Maio de 2013
  150. 150. 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
  151. 151. Frameworks: Desvantagens • Performance • Curva de aprendizado • Dependência
  152. 152. 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
  153. 153. 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
  154. 154. Padrão MVC
  155. 155. 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).
  156. 156. 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.
  157. 157. Padrão MVC • A visão (view) solicita do modelo a informação que ela necessita para gerar uma representação de saída.
  158. 158. Exercícios Práticos • Hello World em CodeIgniter
  159. 159. Prof. Rodrigo Santa Maria rodrigo@digitallymade.com.br facebook.com/rodrigobsm Contato

×