A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PHP5 B ÁSICO 40 Horas Instrutor: Antonio Itamar Júnior.

Apresentações semelhantes


Apresentação em tema: "PHP5 B ÁSICO 40 Horas Instrutor: Antonio Itamar Júnior."— Transcrição da apresentação:

1 PHP5 B ÁSICO 40 Horas Instrutor: Antonio Itamar Júnior

2 PHP5 B ÁSICO O que é PHP? Nomenclatura de arquivos Abertura de escopo PHP Comentários de código Variáveis Nomenclatura de variáveis Tipos de dados - Array - Programação Web - Orientação a Objetos - MySQL - PHP + MySQL

3 A MBIENTE DE DESENVOLVIMENTO Links para apache e php5 3

4 O QUE É PHP ? 4

5 N OMENCLATURA DE ARQUIVOS Não pode conter caracteres especiais. Nomes válidos: Arquivo2.php nomeArquivo.php nome_arquivo.php Cliente.php Nomes inválidos: nome arquivo.php nome-arquivo.php Formulário.php 5

6 E STUDO DE CASO Crie os arquivos para as seguintes necessidades. Cadastrar Pessoa Jurídica; Cadastrar Nome Completo da Mãe; Formulário de inscrição 6

7 A BERTURA DE ESCOPO PHP Sintaxe Sintaxe alternativa (exige alteração no PHP.INI) 7

8 C OMENTÁRIOS DE CÓDIGO Mantém textos dentro do escopo de um código PHP, sem ser interpretado pelo servidor; Auxilia a equipe a entender um determinado trecho de código; Sintaxe Pequenos comentários – recomendado para frase unica; Grandes comentários – recomentado para explicar um algorítimo; Grandes comentários – recomendado para explicar funcionalidades pelo fato de auxilizar na geração de documentação do código. 8 // Texto em linha única /* * Texto em * várias linhas */ /** * Texto em * várias linhas */

9 V ARIÁVEIS Similar a aritmética, as variáveis servem para armazenar algum valor desconhecido, ou que muda com certa facilidade. Para criar uma variável é necessário colocar o símbolo $ antes do nome desejado. Sintaxe 9 $nome_da_varivel

10 N OMENCLATURA DE VARIÁVEIS Não pode ser iniciada com número; É case-sensitive, $nome é diferente de $NOME; 10 VálidosInválidos $Nome$2nome; $nome$nome completo; $_nome- $nomeCompleto* $nome_completo/

11 A LIMENTAR VARIÁVEIS Valor numérico; Valor alfanumérico Valor variável 11 $variavel = valor; Da esquerda pra direita $variavel = 10; $variavel = Hello World; $variavel = 10.5; $variavel = 10; $variavel = 10.5; $variavel = $variavel_2;

12 T IPOS DE DADOS O tipo de variável se refere ao tipo de dado que é armazenado em uma variável. 12 TipoDescrição IntUtilizado para números inteiros FloatTambém chamado de Double – Utilizado para números reais (números de ponto flutuante) StringUtilizado para coleções de caracteres (textos) BooleanUtilizado para valores verdadeiros ou falsos. ArrayUtilizado para armazenar vários valores Object Resource NULLAtribuído automaticamente quando não é declarado nenhum tipo para uma variável

13 T IPOS DE DADOS No PHP não há necessidade de declarar o tipo da variável antes de utilizá-la, como é obrigatório em linguagens como C e JAVA. 13

14 A PRENDA FAZENDO A variável quantidade agora é entendida como uma variável do tipo Int e a variável preco como Float. Provando a portabilidade de tipos de variável no PHP, agora à variável preco será entendida como sendo do tipo String. O PHP altera o tipo de variável de acordo com o que está armazenado na variável. Em qualquer momento essa troca pode ocorrer. 14

15 COERÇÃO DE TIPO Para fazer uma coerção basta colocar o tipo desejado entre parênteses () na frente da variável. 15 $variavel = (tipo) $variavel; Possíveis Tipos intinteger floatlong doublereal

16 A PRENDA FAZENDO Aplicando coerção de tipo A variável $preco, está armazenando a coerção da variável $quantidade para o tipo real. A variável $quantidade continua sendo do tipo int. A variável $preco fica sendo do tipo float. 16

17 V ISUALIZANDO VARIÁVEIS NO BROWSER Echo var_dump(); Aprenda fazendo para visualizar as variaveis. 17

18 V ARIÁVEIS VARIÁVEL Através das variáveis variável é permitido alterar dinamicamente o nome de uma variável. 18

19 C ONSTANTES Uma constante armazena um valor como uma variável, mas seu valor é atribuído uma vez e não pode ser alterado em outra parte do script. Nomenclatura similar as variáveis normais, com algumas pequenas diferenças: Usar nome em maiúsculo, para distinguir variáveis de constantes. (Não é obrigado, mas facilita a leitura do código) Obrigatoriamente não colocar o sinal de cifrão $ na frente do nome. Case sensitive 19

20 C ONSTANTES MÁGICAS nts.predefined.php 20

21 O PERADORES Desenvolvimento... 21

22 O PERADORES ARITMÉTICOS Similares aos operadores matemáticos. 22 NomeOperadorExemplo Adição+$a + $b Subtração-$a - $b Multiplicação*$a * $b Divisão/$a / $b Módulo%$a % $b

23 O PERADORES ARITMÉTICOS Similares aos operadores matemáticos. 23 NomeOperadorExemplo Adição+$a + $b Subtração-$a - $b Multiplicação*$a * $b Divisão/$a / $b Módulo%$a % $b

24 A PRENDA FAZENDO Escreva o código abaixo no arquivo operadores_aritmeticos.php 24

25 E STUDO DE CASO Imprima o nome da operação e a operação com resultado. …Continue com as outras operações. 25

26 O PERADOR DE STRING Conhecido como concatenação, é possível juntar e armazenas uma ou mais strings. 26

27 A PRENDA FAZENDO Escreva o código abaixo no arquivo operador_string.php 27

28 CONCATENAÇÃO AVANÇADA 28

29 OPERADORES DE ATRIBUIÇÃO DE COMBINAÇÃO Cada um dos operadores abaixo, é um modo abreviado de fazer uma operação aritmética. 29 OperadorUtilizaçãoEquivalente a +=$a += $b$a = $a + $b -=$a -= $b$a = $a - $b *=$a *= $b$a = $a * $b /=$a /= $b$a = $a / $b %=$a %= $b$a = $a % $b.=$a.= $b$a = $a. $b

30 A PRENDA FAZENDO 30

31 A ULA 2 Pré e pós incremento e decremento

32 P RÉ E PÓS INCREMENTO E DECREMENTO 32 Pré-incremento – primeiro incrementa (+1) na variável informada em seguida retorna o valor incrementado. Pós-incremento – primeiro retorna o valor da variável em seguida é incrementado (+1). Para decrementar (--) é semelhante, entretanto o valor da variável vai decrementar em vez de incrementar. ++$variavel; $variavel++;

33 A PRENDA FAZENDO Escreva o código abaixo no arquivo pre_pos_incremento.php 33

34 diferença de = para == 34

35 ESTRUTURA DE CONTROLE: INSTRUÇÃO IF Case sensitive; Sintaxe para única instrução Sintaxe para várias instruções Sintaxe alternativa Substitui a chave de abertura ({) por dois-pontos (:) e a chave de fechamento por uma nova palavra-chave, que será endif 35 if( expressão Boolean ) instruções if( expressão Boolean ) { instruções } if( expressão Boolean ): instruções endif;

36 A PRENDA FAZENDO 36

37 T ABELA DA VERDADE E | OU If com mais de uma condição. 37

38 ESTRUTURA DE CONTROLE: INSTRUÇÃO ELSE 38

39 ESTRUTURA DE CONTROLE: INSTRUÇÃO ELSEIF 39

40 E STUDO DE CASO 40

41 ESTRUTURA DE CONTROLE: INSTRUÇÃO SWITCH Funciona de modo semelhante a instrução if. Sintaxe A palavra-chave break quer dizer que a instrução irá parar assim que encontrá-la. 41 switch ( $a ) { case 'Brasil': //EXECUTA AÇÃO break; case 5: //EXECUTA AÇÃO break; default: //EXECUTA AÇÃO break; }

42 A PRENDA FAZENDO Escreva o código abaixo no arquivo switch.php 42

43 ESTRUTURA DE CONTROLE PARA REPETIÇÃO As instruções while, do-while, for e foreach, são consideradas instruções de controle iterativo (repetição), podendo executar alguma parte do código várias vezes. 43

44 ESTRUTURA DE CONTROLE: INSTRUÇÃO WHILE Como em uma instrução if ele conta com uma condição seja true ou false. No início de cada iteração, a condição será testada, se a condição for true a instrução será executada, caso seja false, o bloco não será executado e o loop terminará. Sintaxe Sintaxe alternativa 44 while( expressão Boolean ) { instruções } while( expressão Boolean ): instruções endwhile;

45 A PRENDA FAZENDO Escreva o código abaixo no arquivo while.php 45

46 ESTRUTURA DE CONTROLE: INSTRUÇÃO DO-WHILE Loops do-while são bem similares aos loops while, exceto pelo fato de que a condição é verificada no fim de cada iteração em vez de no começo. A primeira iteração de um loop do-while é garantidamente executada (a condição só é verificada no fim da iteração). Não é obrigatório executar o loop (condição diferente de true). Sintaxe única 46 do { instruções } while( expressão Boolean );

47 A PRENDA FAZENDO Escreva o código abaixo no arquivo do_while.php 47 10 ); ?>

48 ESTRUTURA DE CONTROLE: INSTRUÇÃO FOR Sintaxe Expressão 1 – é executada uma vez incondicionalmente no início do loop (normalmente valor inicial de um contador). Expressão 2 – é avaliada no início de cada iteração, se a expressão for true o loop continua, caso seja false o loop termina (normalmente testará o contador com um limite). Expressão 3 – é executada no fim de cada iteração (normalmente ajustará o valor do contador). Sintaxe alternativa 48 for( expressão 1 ; expressão 2 ; expressão 3 ) { instruções } for( expressão 1 ; expressão 2 ; expressão 3 ): instruções endfor;

49 A PRENDA FAZENDO Escreva o código abaixo no arquivo for.php 49

50 ESTRUTURA DE CONTROLE: INSTRUÇÃO FOR Cada uma das expressões pode ser vazia ou conter múltiplas expressões separadas por vírgulas. Em expr2, todas as expressões separadas por vírgula são avaliadas mas o resultado é obtido pela última parte. expr2 vazia significa que o loop pode rodar indefinidamente (PHP considera-a implicitamente como TRUE, como em C). 50

51 A PRENDA FAZENDO Escreva o código abaixo no arquivo for.php 51 10 ) { break; } echo $a. ; } ?>

52 E STRUTURA DE CONTROLE : BREAK E CONTINUE break cancela a execução do comando for, foreach, while, do- while ou switch atual. break aceita um argumento numérico opcional que diz a ele quantas estruturas aninhadas englobadas devem ser quebradas. 52

53 ESTRUTURA DE CONTROLE: INSTRUÇÃO DECLARE O construtor declare é utilizado para configurar diretivas de execução para blocos de código. A sintaxe do declare é similar a sintaxe de outros construtores de controle. structures.declare.php 53

54 A ULA 3 Array

55 FUNÇÕES DO PHP Conheça algumas forma de visualizar o conteúdo de um array. 55 FunçãoDescrição var_damp()Utilizado para representação estruturada sobre uma ou mais expressões, incluindo o tipo, a chave e o valor print_r()Utilizado para imprimir a estrutura de um array, contendo a chave e o valor Tag HTML para formatar uma saída (texto).

56 A PRENDA FAZENDO Escreva o código abaixo no arquivo array.php 56

57 A RRAY – ACESSANDO CONTEÚDO Arquivo: acessando_array.php Observação: Echo $a[] // vai dar erro. 57

58 E STUDO DE CASO – ACESSANDO ARRAY Arquivo: estudo_caso_acessando_array.php 58

59 A RRAYS COM ÍNDICES ( CHAVES ) O função array por padrão já cria automaticamente suas chaves, iniciando com 0 e indo até N; A chave pode ser string ou integer; Arrays com chaves Float, serão transformados em Int; Utilizar True como chave será interpretado como Integer 1. Utilizando False como chave será avaliado como Integer 0. Utilizando Null como chave será avaliada como uma String vazia. O valor pode ser qualquer tipo PHP; Sintaxe 59 array( chave => valor,... )

60 A CESSANDO CONTEÚDO DE ARRAY COM CHAVES Declara o array com todas as chaves e valores necessários Declara o array com apena uma chave e um valor, implementando o resto depois da declaração inicial do array Não foi iniciado nenhum array 60 $a = array( 'mouse' => 30, 'monitor' => 400, 'teclado' => 45 ); $a = array( 'mouse => 30 ); $a['monitor'] = 400; $a['teclado'] = 45; $a[mouse'] = 30; $a['monitor'] = 400; $a['teclado'] = 45;

61 A PRENDA FAZENDO Escreva o código abaixo no arquivo array_chave.php (1/2) 61 30, 'monitor' => 400, 'teclado' => 45 ); //SINTAXE 2 $b = array( 'mouse' => 30 ); $b['monitor'] = 400; $b['teclado'] = 45; //SINTAXE 3 $c['mouse'] = 30; $c['monitor'] = 400; $c['teclado'] = 45; //EXIBIR CONTEÚDO echo $a['mouse']. ' '; echo $b['teclado']. ' '; echo $c['monitor']. ' ';

62 ...CONTINUAÇÃO Escreva o código abaixo no arquivo array_chave.php (2/2) 62 $d = array( 'a' => true, 3 => 20, 5.3 => 30, true => 'Texto 1', false => 'Texto 2', null => 'Texto3 ); //IMPRIMIR ARRAY - VAR_DUMP echo ' '; var_dump( $d ); echo ' '; echo ' '; //FORMATANDO IMPRESSÃO - PRINT_R echo ' '; print_r( $d ); echo ' '; ?>

63 FUNÇÕES DO PHP Conheça algumas forma de visualizar o conteúdo de um array utilizando funções de iteração. 63 FunçãoDescrição foreachEstrutura de controle similar a while e for, oferecendo uma maneira fácil de iterar sobre arrays ( matrizes)

64 ESTRUTURA DE CONTROLE: INSTRUÇÃO FOREACH O foreach funciona somente com variáveis do tipo arrays, qualquer variável diferente de array a função retornará um erro Warning: Invalid argument supplied for foreach() Sintaxe Varre uma matriz dada por variavel_array. Em cada 'loop', o valor do elemento corrente é atribuído a $valor. Sintaxe alternativa Atribui a chave do elemento atual à variável $chave em cada iteração. 64 foreach ( variavel_array as $valor ) { instrucoes } foreach ( variavel_array as $chave => $valor ) { instrucoes }

65 A PRENDA FAZENDO Escreva o código abaixo no arquivo foreach.php 65 30, 'monitor' => 400, 'teclado' => 45 ); //SINTAXE 1 foreach ( $a as $valor ) { echo $valor. ' '; } echo ' '; //SINTAXE 2 foreach ( $a as $chave => $valor ) { echo 'Chave: '. $chave. ', valor: '. $valor. ' '; } ?>

66 O PERADORES DE ARRAY 66 NomeOperadorExemploResultado União+$a + $bO array $b é anexado a $a, mas os conflitos de chaves não são adicionados, prevalecendo $a Igualdade==$a == $bVerdadeiro se $a e $b contêm os mesmos valores com as mesmas chaves. Identidade===$a === $bVerdadeiro se $a e $b contêm os mesmos valores do mesmo tipo na mesma ordem com as mesmas chaves. Desigualdade!=$a != $bVerdadeiro se $a e $b não contêm os mesmos valores. Desigualdade<>$a <> $bO mesmo que !=. Não-identidade!==$a !== $bVerdadeiro se $a e $b não contêm os mesmos valores do mesmo tipo na mesma ordem.

67 A PRENDA FAZENDO Escreva o código abaixo no arquivo array_operadores.php 67 1, 2, 3 ); $c = array( 1 => 2, 2 => 3, 0 => 1 ); $d = array( '1', '2', '3' ); $e = array( 5 => 'Brasil', 6 => 'Argentina', 7 => 'Chile' ); //UNIÃO DE ARRAYS print_r( $a + $b ); //UNIÃO DE ARRAYS print_r( $a + $e ); //IGUALDADE DE ARRAYS var_dump( $a == $c ); //IDENTIDADE DE ARRAYS var_dump( $a === $c ); //IDENTIDADE DE ARRAYS var_dump( $a === $d ); ?>

68 A ULA 4 Função

69 FUNÇÕES São utilizadas para encapsular um pedaço de código que realiza uma tarefa única e bem definida. Não é possível cancelar ou alterar a definição de funções previamente declaradas. Qualquer código PHP válido pode aparecer dentro de uma função, mesmo outras funções. É iniciada com a palavra-chave function. Sintaxe declaração Sintaxe chamada 69 function nome() { instruções da função } nome();

70 FUNÇÕES – NOMENCLATURA É importante considerar que o nome da função deve ser descritivo – descrever o que a função faz. Não é possível sobrepor uma função – não é possível ter mais de uma função com o mesmo nome. Não é permitido cria uma função com o mesmo nome de uma função predefinida pelo PHP. Somente é permitido: letras, número e sublinhados. Não pode iniciar com número. Não é case-sensitive – nome() é igual a NOME(). 70 VálidoInválido nome()5nome() nome2()somar-numeros() _nome_tres()$exibir() nomeQuatro()count()

71 A PRENDA FAZENDO Escreva o código abaixo no arquivo funcao.php Chamando funções 71 nome_da_função(); $nome_da_variável();

72 FUNÇÕES – ESCOPO Conclusão O que esta dentro da função só funciona dentro; O que esta fora só funciona fora da função; Todas as funções no PHP tem escopo global - elas podem ser chamadas fora de uma função mesmo que tenham sido definidas dentro e vice-versa. 72 $a = 1; echo $a; //Exibe 1 function hello() { echo $a; //Não exibe nada } echo $a; //Exibe 1 $a = 1; echo $a; //Exibe 1 function hello() { $a = 3; $b = 5; echo $a; //Exibe 3 echo $b; //Exibe 5 } echo $a; //Exibe 1 echo $b; //Não exibe nada

73 FUNÇÕES – RETORNO Funciona como um exit na função. Diferença: echo X return 73

74 A PRENDA FAZENDO Escreva o código abaixo no arquivo funcao_retorno.php 74

75 ESTUDO DE CASO – FUNÇÃO 75

76 FUNÇÕES – PARÂMETRO Os parâmetros permitem introduzir vários valores em uma função para influenciar seu comportamento. Todos os parâmetros serão obrigatórios excerto quando for definido como opcional (atribuído um valor padrão). É permitido informar mais parâmetros do que foi declarado na função. Não é permitido informar menos parâmetros do que foi declarado. Sintaxe 76 function nome( $par1, $par2,.... ) { } function nome( $par1, $par2, $par3 = 1,.... ) { }

77 A PRENDA FAZENDO Escreva o código abaixo no arquivo funcao_parametro.php 77

78 E SCOPO DE VARIÁVEIS Escopo refere-se ao local onde a variável é visível. 78 SuperglobalVisíveis por toda parte dentro de um script ConstantesUma vez declarada, são sempre visíveis globalmente, podem ser usadas dentro e fora das funções VariáveisDeclaradas em um script são visíveis por todo esse script, mas não dentro de funções

79 79

80 80

81 FUNÇÕES – PARÂMETRO POR REFERÊNCIA Veja aprenda fazendo. 81

82 A PRENDA FAZENDO Escreva o código abaixo no arquivo funcao_parametro_por_referencia.php 82

83 A ULA 5 Orientação a Objetos

84 ORIENTAÇÃO A OBJETOS – 10 HORAS - Declaração de classe - Nomenclatura - Instanciar classe - Utilizar atributos e métodos de classe

85 OOP – PROGRAMAÇÃO ORIENTADA A OBJETOS 85

86 DECLARAÇÃO DE CLASSE A classe é formada por: Atributos ( variáveis ) utilizando a palavra-chave var; Métodos ( funções ) utilizando a palavra-chave function; Sintaxe 86 class NomeDaClasse { var $atributo; function metodo() { }

87 A PRENDA FAZENDO Escreva o código abaixo no arquivo classe.php 87

88 N OMENCLATURA Não é possível declarar mais de um atributo ou método com o mesmo nome. Classe Atributo Método 88

89 I NSTANCIAR CLASSE Após declarar uma classe, é possível criar um ou vários objetos que seja membro dela. A criação de objetos é conhecida também como criar uma instância ou instanciar uma classe. Para informar ao servidor que queremos instanciar uma classe iremos utilizar a palavra-chave new. Neste momento, a variável $a possui um objeto da classe NomeDaClasse. 89 class NomeDaClasse { var $atributo; function metodo() { } $a = new NomeDaClasse();

90 U TILIZAR ATRIBUTOS E MÉTODOS DE CLASSE Todos os atributos e métodos de uma classe pertencem apenas ao escopo da classe e de seus objetos, Não é possível utilizar um atributo ou chamar um método sem referenciar sua classe. Sintaxe para utilização fora da classe. 90 class NomeDaClasse { var $atributo; function metodo() { } $a = new NomeDaClasse(); $a->atributo; $a->atributo = 1; $a->metodo();

91 A PRENDA FAZENDO Escreva o código abaixo no arquivo instanciar_classe.php 91 ano = 2009; $carro1->cor = 'Prata'; //IMPRIMIR VALORES DO OBJETO. echo $carro1->ano; echo ' '; echo $carro1->cor; echo ' '; //CHAMAR FUNCIONALIDADES DO OBJETO. echo $carro1->andar(); ?>

92 E STUDO DE CASO – PROCURAR EXEMPLOS QUE EXEMPLIFIQUE A USO DE HERANÇA, POIS SERA UTIL PARA APROVEITAR NESSE ESTUDO DE CASO Arquivo: estudo_caso_instanciar_classe.php Impressão: Ano: 2009 Cor: Preto Velocidade: 300 Moto andando… Moto Parada 92 Transporte + ano + cor + velocidade + andar() + parar()

93 U TILIZAR ATRIBUTO E MÉTODO INTERNO Para ter acesso a atributos ou métodos dentro de uma classe, deverá ser utilizado a palavra-chave $this ( variável nativa ). $this é uma usada para referenciar o objeto corrente (objeto utilizado no momento). Sintaxe para utilização dentro da classe. 93 class NomeDaClasse { var $atributo; function metodo() { $this->atributo; $this->metodo2(); } function metodo2() { } $a = new NomeDaClasse(); $a->atributo = 3; $a->metodo();

94 94 Categoria + nome + descricao + inserir () + alterar() + excluir() + listar()

95 95 obterInformacao() ); } function obterInformacao() { return('Informações obtidas - Ano: '. $this->ano. ', Cor: '. $this->cor); } //CRIAR UMA INSTÂNCIA DA CLASSE CARRO. $carro1 = new Carro(); //ATRIBUIR VALORES AO OBJETO. $carro1->ano = 2009; $carro1->cor = 'Prata'; //IMPRIMIR VALORES DO OBJETO. echo $carro1->ano; echo ' '; echo $carro1->cor; //CHAMAR FUNCIONALIDADES DO OBJETO. echo $carro1->andar(); echo ' '; echo $carro1->obterInformacao(); ?>

96 U TILIZAR ATRIBUTO E MÉTODO DE OUTRA CLASSE 96

97 H ERANÇA É ser capaz incorporar os atributos e métodos de uma classe previamente definida. Para uma classe herdar atributos e métodos de outra classe usa-se a palavra-chave extends. 97 class A { var $atributo1; function metodo1() { } class B extends A { var $atributo2; function metodo2() { } $b = new B(); $b->atributo2; $b->metodo2(); $b->atributo1; $b->metodo1();

98 A PRENDA FAZENDO Arquivo: usuario.php 98

99 A PRENDA FAZENDO Arquivo: cliente.php Arquivo: funcionario.php 99

100 A PRENDA FAZENDO Arquivo: cliente.php 100 nome = 'Junior'; $objeto-> = $objeto->senha = '123'; echo $objeto->inserir(); echo $objeto->obterInformacao(); ?>

101 A PRENDA FAZENDO Arquivo: funcionario.php 101 nome = 'Júnior'; $objeto-> = $objeto->senha = '123'; $objeto->cargo = 'Programador'; $objeto->salario = 3000; echo $objeto->inserir(); echo $objeto->obterInformacao(); ?>

102 FUNÇÕES DO PHP Conheça algumas forma de importar arquivos. 102 FunçãoDescrição requireImportar o arquivo informado para o arquivo que esta chamando a função, caso não seja encontrado o arquivo informado será exibido um Warning seguido de um Fatal error. includeSemelhante ao require porém, caso não seja encontrado o arquivo informado será exibido apenas um Warning. require_onceIdentico ao require porém importa o arquivo apenas uma unica vez. include_onceIdentico ao include porém importa o arquivo apenas uma unica vez.

103 A PRENDA FAZENDO - REQUIRE Arquivo: cliente.php Arquivo: funcionario.php 103

104 P OLIMORFISMO 104

105 A PRENDA FAZENDO Arquivo: funcionario.php 105 nome = 'Junior'; $objeto-> = $objeto->senha = '123'; $objeto->cargo = 'Programador'; $objeto->salario = 3000; echo $objeto->inserir(); echo $objeto->obterInformacao(); ?>

106 A PRENDA FAZENDO Arquivo: funcionario.php 106 nome. ' '. ' '. $this-> . ' '. 'Senha: '. $this->senha. ' '. 'Cargo: '. $this->cargo. ' '. 'Salário: '. $this->salario. ' '); } $objeto = new Funcionario();... ALIMENTAÇÃO DO OBJETO... ?>

107 E STUDO DE CASO Saída do arquivo: funcionario.php Chamando método para inserir usuário. Obter Informações de Funcionário. Nome: Júnior Senha: 123 Cargo: Programador Salário: 3000 Saída do arquivo: cliente.php Chamando método para inserir usuário. Obter Informações de Usuário. Nome: Júnior Senha:

108 V ISIBILIDADE Conheça as quatro formas de especificar atributos e métodos de classe. 108 AcessoDescrição public (default)Os recursos podem ser acessados de dentro ou de fora da classe. privateOs recursos podem ser acessados apenas dentro da classe onde foi definido e não serão herdados. protectedOs recursos podem ser acessados apenas dentro da classe onde foi definido e em seus descendentes. finalOs recursos podem ser acessados de dentro ou de fora da classe, mas não podem ser sobreposto em seus descendentes.

109 A PRENDA FAZENDO Escreva o código abaixo no arquivo visibilidade.php 109 atributo3; $this->metodo3(); echo 'Chamando o método 4! '; }

110 CONTINUAÇÃO class B extends A { public function metodo5() { $this->atributo1; $this->atributo2; //$this->atributo3; //Ocorre erro porque o $atributo3 é private. $this->metodo1(); $this->metodo2(); //$this->metodo3(); //Ocorre erro porque o metodo3() é private. } $a = new A(); $a->atributo1; //$a->atributo2; //Ocorre erro porque o $atributo2 é protected. //$a->atributo3; //Ocorre erro porque o $atributo3 é private. $a->metodo1(); //$a->metodo2; //Ocorre erro porque o metodo2() é protected. //$a->metodo3; //Ocorre erro porque o metodo3() é private. $a->metodo4(); $b = new B(); $b->atributo1; $b->metodo1(); $b->metodo5(); ?>

111 V ISIBILIDADE FINAL Não permite sobrepor um método. 111

112 A PRENDA FAZENDO Escreva o código abaixo no arquivo visibilidade_final.php 112

113 C ONSTRUTOR É chamado automaticamente quando um objeto é criado. Deve ser definido como público, para poder instanciar objetos de fora da classe. Para definir métodos como construtor de uma classe, deverá ser utilizado a palavra-chave __construct. 113 class NomeDaClasse { public $atributo; public function __construct() { } $a = new NomeDaClasse();

114 A PRENDA FAZENDO Arquivo: construtor.php 114 nome = 'Junior'; $objeto-> = $objeto->senha = '123'; $objeto->cargo = 'Programador'; $objeto->salario = 3000; echo $objeto->inserir(); echo $objeto->obterInformacao(); ?> class A { public function __construct() { return 'Chamando o método construtor! '; } public function metodo1() { return 'Chamando metodo1! '; } $a = new A(); $a->metodo1();

115 A PRENDA FAZENDO Escreva o código abaixo no arquivo construtor.php 115 metodo1(); $b = new B( 'Hello Construct Class' ); ?>

116 A TRIBUTOS E MÉTODOS ESTÁTICOS Um método estático não pode chamar atributos não-estáticos. 116

117 A PRENDA FAZENDO Escreva o código abaixo no arquivo static.php 117 metodo1(); //O método pode ou não ser static. echo $a->atributo1; //Não é possível chamar atributo estático pelo objeto; ?>

118 A TRIBUTOS E MÉTODOS ESTÁTICOS Para ter acesso a atributos ou métodos estáticos dentro de uma classe, devemos utilizar a palavra-chave self:: 118

119 COMPARANDO STATIC COM NÃO- STATIC 119

120 Desabilite (comentando) todo o script do static.php Escreva o código abaixo no arquivo static.php 120 metodo1(); //O método pode ou não ser static. echo $a->atributo1; //Não é possível chamar atributo estático pelo objeto; ?>

121 PADRÃO GET E SET Utilizar os atributos da classe sempre private, excerto quando a regra de negócio não permitir. 121 class NomeDaClasse { private $atributo; public function getAtributo() { return ( $this->atributo ); } public function setAtributo( $valor ) { $this->atributo = $valor; } $a = new NomeDaClasse(); $a->setAtributo( 'Brasil' ); $a->getAtributo();

122 A PRENDA FAZENDO Escreva o código abaixo no arquivo get_set.php 122 ano; } public function setAno( $valor ) { $this->ano = $valor; } public function getCor() { return $this->cor; } public function setCor( $valor ) { $this->cor = $valor; } $a = new Carro(); //$a->ano; //Atributo privado é acessado somente dentro da classe. $a->setAno( 2009 ); echo $a->getAno(). ' '; $a->setCor( 'Branco' ); echo $a->getCor(); ?>

123 E STUDO DE CASO Implementar o Padrão Get Set nas classes: Usuario Funcionario Cliente 123

124 E STUDO DE CASO Arquivo: estudo_caso_calculadora_get_set.php 124 Calculadora - num1 - num 2 + getNum1() + setNum1( $value ) + getNum2() + setNum2( $value ) + somar() + subtrair() + multiplicar() + dividir()

125 E STUDO DE CASO – ACESSAR ATRIBÚTO PRIVADO Class Funcionario Ladrao 6% Mulher 50% Receita 100% Pretendente 2x Se nao informar ninguem pede para informar quem que ver. 125

126 A PRENDA FAZENDO Arquivo: funcionario.php 126 salario ); } elseif( $interessado == 'ladrão' ) { return( $this->salario * 0.06 ); }... } $objeto = new Funcionario(); $objeto->getSalario( ladrão ); $objeto-> = $objeto->senha = '123'; echo $objeto->inserir(); echo $objeto->obterInformacao(); ?>

127 PROGRAMAÇÃO WEB - Métodos GET, POST, REQUEST

128 M ÉTODO G ET, P OST E R EQUEST 128

129 Explicar como passar variaveis pela url 129

130 Fazer um form_funcionario.html e enviar para class Funcionario e exibir os dados da mesma. 130

131 E STUDO DE CASO 131 form_calculadora.html Número 1: Número 2: Operação: Calcular Calculadora - num1 - num 2 - operacao + getNum1() + setNum1( $value ) + getNum2() + setNum2( $value ) + getOperacao + setOperacao( $value ) + calcular() processar_form_calculadora.php POST

132 PHP + M Y SQL – 5 HORAS - Abrir conexão - Executar comandos SQL

133 FUNÇÕES DO PHP Conheça mais algumas funções necessárias. 133 FunçãoDescrição mysql_connect()Abre ou reutiliza uma conexão com um servidor MySQL. die()Construtor da linguagem equivalente a exit(). mysql_error()Retorna o texto do erro da ultima função MySQL. mysql_select_dbSeleciona um banco de dados MySQL.

134 ABRIR CONEXÃO 134

135 A PRENDA FAZENDO Escreva o código abaixo no arquivo conexao.php 135

136 FUNÇÕES DO PHP Conheça mais algumas funções necessárias. 136 FunçãoDescrição require()A instrução inclui e avalia o arquivo informado. mysql_query()Envia uma consulta MySQL. mysql_num_rows()Obtém o número de linhas em um resultado

137 E XECUTAR COMANDOS SQL 137

138 A PRENDA FAZENDO Escreva o código abaixo no arquivo executar_comandos_sql.php 138

139 $linha_afetada1 = mysql_fetch_assoc($resultado); echo $linha_afetada1[modelo]. ; echo $linha_afetada1[cor]. ; echo $linha_afetada1[ano]. ; Echo ; $linha_afetada2 = mysql_fetch_assoc($resultado); echo $linha_afetada2[modelo]. ; echo $linha_afetada2[cor]. ; echo $linha_afetada2[ano]. ; 139

140 while ( $linha_afetada = mysql_fetch_assoc($resultado) ) { echo $linha_afetada[modelo]. ; echo $linha_afetada[cor]. ; echo $linha_afetada[ano]. ; echo ; } 140

141 E STUDO DE CASO 141 form_inserir_usuario.html Nome: Senha: Salvar Usuario - nome - - senha + getNome() + setNome( $value ) + getLogin() + setLogin( $value ) + getSenha() + setSenha( $value ) + inserir() sql_inserir_usuario.php POST

142 E STUDO DE CASO Complete os gets e sets para todos os atributos. 142 sql_inserir_usuario.php

143 L ISTAR _ USUARIOS. PHP Código Nome Editar Excluir 1 Junior Ed Ex 143

144 144

145 >Ed > Ex 145

146 Cria os dois arquivos de alterar e de confirmar exclusao 146

147 Arquivo: form_alterar_usuario.php Nome: Senha: Voltar para lista 147

148 Arquivo: confirmar_exclusao_usuario.php Deseja realmente excluir o usuario? >Sim Nao 148

149 Arquivo: sql_excluir_usuario.php Voltar para lista de usuários. 149

150 Arquivo: form_alterar_usuario.php

151 Arquivo: form_alterar_usuario.php …continuacao… $linha_afetada = mysql_fetch_assoc( $resultado ); ?> Nome: /> Senha: > Voltar para lista 151

152 A LTERAR 152 Voltar para lista sql_alterar_usuario.php

153 Mudar campo id para hidden 153

154 154 form_alterar_usuario.phplistar_usuario.phpsql_alterar_usuario.phpsql_excluir_usuario.php POST sql_inserir_usuario.php form_inserir_usuario.html ARQUITETURA PRIMÁRIA POST confirmar_exclusao_usuario.php GET

155 155 POST form_alterar_usuario.html ARQUITETURA PRIMÁRIA - OO POST form_inserir_usuario.html GET listar.html GET confirmar_exclusao_usuario.html Usuario.php Usuario - id_usuario - nome - - senha + inserir() + alterar() + listar() + excluir() + confirmarExclusao() + exibirFormInserir() + exibirFormAlterar() + buscarTodos() + buscarPorId() Qual método?

156 156 POST ARQUITETURA PRIMÁRIA CENTRALIZADA – OO POST GET Index.php Usuario.php form_alterar_usuario.htmlform_inserir_usuario.htmllistar.htmlconfirmar_exclusao_usuario.html Qual class ? Qual método?

157 P RIMEIRO PASSO. Criar tabela no banco de dados. 157 CREATE TABLE usuario ( id_usuario int not null auto_increment, nome varchar(100), varchar(50), senha varchar(15), primary key (id_usuario) )

158 S EGUNDO PASSO Criar o formulário de inserção. 158 Nome: Senha: form_inserir_usuario.html

159 T ERCEIRO PASSO Criar método na classe, para exibir o formulário de inserção 159 Usuario.php

160 160 index.php?classe=Usuario&metodo=exibirFormInserir

161 Q UARTO PASSO Criar e encapsular os atributos da classe. Complete os gets e sets para todos os atributos. 161 idUsuario = $valor; } public function getId() { return( $this->idUsuario ); } ?> Usuario.php

162 Q UINTO PASSO Criar o método inserir. Complete os gets e sets para todos os atributos. 162 setNome( $_POST['nome' ] ); $objeto->set ( $_POST[ ' ' ] ); $objeto->setSenha( $_POST[ 'senha' ] ); //2. ESCREVER COMANDO SQL. $comandoSQL = "INSERT INTO carro ( nome, , senha ) VALUES ( '". $objeto->getNome(). "', '". $objeto->get (). "', '". $objeto->getSenha(). "' )"; //3. EXECUTAR COMANDO SQL. $resultado = mysql_query( $comandoSQL ); //4. EXIBIR MENSAGEM DE RETORNO. } ?> Usuario.php

163 P ÁGINA CONTROLADORA 1 – Recuperar classe e método; 2 – Importar (require) arquivo da classe informada. 3 – Cria um objeto da classe informada. 4 – Chamar o método informado pela url, na classe importada 163 Index.php $metodo(); ?>

164 > 164

165 A PRENDA FAZENDO Escreva o código abaixo no arquivo executar_comandos_sql.php 165

166 REFERÊNCIA BIBLIOGRÁFICAS PHP Zend.PHP.5.Certification.Study.Guide.2006 MySQL [acessado em 1 de maio de 2009 as 21Hrs] [acessado em 1 de maio de 2009 as 20Hrs] [acessado em 1 de maio de 2009 as 21Hrs] 166

167 A PRENDA FAZENDO Escreva o código abaixo no arquivo heranca.php Fazer um exemplo mas simples para exemplificar a herança porque esse do transporte sera usando para exeplificar require. 167 cor. ' Quantidade de rodas: '. $this->rodas. ' Velocidade Máxima: '. $this->velocidade. ' ; }

168 A PRENDA FAZENDO Arquivo: class_transporte.php 168

169 A PRENDA FAZENDO Arquivo: class_carro.php 169 cor. ' Quantidade de rodas: '. $this->rodas. ' Velocidade Máxima: '. $this->velocidade. ' ; } ?>

170 170 cor. ' Quantidade de rodas: '. $this->rodas. ' Velocidade Máxima: '. $this->velocidade. ' ; } $carro1 = new Carro(); $carro1->cor = 'Vermelho'; $carro1->rodas = 4; $carro1->velocidade = 130; $carro1->ligar(); $carro1->obterInfo(); $carro1->andar(); ?>

171 171 cor. ' Quantidade de rodas: '. $this->rodas. ' Velocidade Máxima: '. $this->velocidade. ' ; }


Carregar ppt "PHP5 B ÁSICO 40 Horas Instrutor: Antonio Itamar Júnior."

Apresentações semelhantes


Anúncios Google