Você está na página 1de 29
Curso PHP 5 Instrutores: Carlos Rebecchi Danielle Santos Belo Horizonte 2014
Curso PHP 5
Instrutores:
Carlos Rebecchi
Danielle Santos
Belo Horizonte
2014

1

Sumário

 

2

Introdução

3

3

PHP

3

3.1 Sintaxe básica

4

3.2 Documentação

4

3.3 Conceito de variáveis

4

3.3.1 Tipos de dados

4

3.3.2 Constantes

5

3.3.3 Operadores

6

3.3.4 Operadores lógicos

6

3.4

Fluxos de Controle

6

3.4.1 If / Else

6

3.4.2 Switch

7

3.5

Arrays

7

3.5.1 Arrays Associativos

8

3.5.2 Arrays Multidimensionais (Matrizes)

9

3.6

Estruturas de Repetição

9

3.6.1 For

10

3.6.2 While

10

3.6.3 Do-While

10

3.6.4 Foreach

10

3.7 Include e Require

11

3.8 Funções

12

3.8.1 Funções nativas

12

3.8.2 Construindo uma função

12

3.8.3 Função dentro de função

13

3.9

Classes e Objetos

14

3.9.1 Nome da classe

14

3.9.2 Atributos

14

3.9.3 Métodos

15

3.9.4 Criando Classes

15

3.9.5 Instanciando Objetos

15

3.9.6 Herança

16

3.9.7 Encapsulamento

17

3.9.8 Polimorfismo

20

4

Banco de dados

22

4.1

MySQL (Gerenciador de Banco de Dados)

22

 

1

Universidade Corporativa Prodemge 2014

 

4.2

Conexão com Banco de Dados

22

4.2.1 Instalação XAMPP ou WAMP

 

23

4.2.2 Funcionamento dos servidores

23

4.2.3 PHPMyAdmin

23

4.3

GET e POST

24

4.3.1 GET

 

24

4.3.2 POST

25

4.4

Formulário

25

4.4.1

Salvando e listando dados do formulário

25

5

Referências

 

28

 

2

Universidade Corporativa Prodemge 2014

 

Curso PHP

2

Introdução

Esta apostila tem como objetivo apresentar a linguagem de programação chamada PHP, sigla recursiva que significa Hypertext Prepocessor. O PHP possui código-fonte aberto e é uma linguagem de servidor muito utilizada para criação de websites dinâmicos e aplicações web.

para criação de websites dinâmicos e aplicações web. 3 PHP O PHP é focado para ser

3

PHP

O PHP é focado para ser uma linguagem de script do lado do servidor, portanto, você pode fazer qualquer coisa que outro programa CGI pode fazer, como: avaliar dados de formulários enviados por um navegador, criar conteúdo web personalizado para o navegador, conversar com um banco de dados, e até mesmo enviar e receber cookies. "E daí?", você pode dizer. "Posso fazer isso com Java Script." E é verdade! Mas o conhecimento de Java Script pode ser limitado. Java Script geralmente é executado no navegador, ou cliente. Isso significa que ele só sabe o que está acontecendo realmente no seu navegador, e sobre as informações que ele obtém dos websites aos quais você está conectado. PHP, por outro lado, é executado no mesmo computador que o website que você está visitando, que é conhecido como servidor. Isso significa que ele tem acesso a toda a informação e a todos os arquivos naquela máquina, o que o permite construir páginas HTML personalizadas para enviar ao seu navegador, manusear cookies, e executar tarefas ou realizar cálculos com dados obtidos a partir do website. Esses são os maiores campos onde os scripts PHP podem ser utilizados:

 

Script no lado do servidor (server-side): Este é o mais tradicional e principal campo de atuação do PHP. Você precisa de três coisas para seu trabalho. O interpretador do PHP (como CGI ou módulo), um servidor web e um browser. Basta rodar o servidor web conectado a um PHP instalado. Você pode acessar os resultados de seu programa PHP com um browser, visualizando a página PHP através do servidor web. Script de linha de comando: Você pode fazer um script PHP funcionar sem um servidor Script de linha de comando: Você pode fazer um script PHP funcionar sem um servidor

Script de linha de comando: Você pode fazer um script PHP funcionar sem um servidor web ou browser. A única coisa necessária é o interpretador. Esse tipo de uso é ideal para script executados usando o cron ou o Agendador de Tarefas (no Windows). Esses scripts podem ser usados também para rotinas de processamento de texto.

Escrevendo aplicações GUI no lado do cliente (client-side): O PHP não é (provavelmente) a melhor linguagem para produção de aplicações com interfaces em janelas, mas o PHP faz isso muito bem, e se você deseja usar alguns recursos avançados do PHP em aplicações no lado do cliente poderá utilizar o PHP-GTK para escrever esses programas. E programas escritos desta forma ainda serão independentes de plataforma. OAgendador de Tarefas (no Windows). Esses scripts podem ser usados também para rotinas de processamento de

 

3

Universidade Corporativa Prodemge 2014

 

PHP-GTK é uma extensão do PHP, não disponível na distribuição oficial. Se você está interessado no PHP- GTK, visite o site http://gtk.php.net.

3.1

Sintaxe básica

Tags especiais indicam ao PHP onde estão os blocos de código. A tag de abertura é formada por um sinal de “menor que” (<), um sinal de interrogação (?) e a sigla php. A tag de fechamento é formada por um ponto interrogação (?) e sinal de “maior que” (>). Exemplo:

<?php

 

?>

Monte o exemplo abaixo:

 
 
 

Explicando, criamos as variáveis “a” e “b” e atribuímos a ela um valor, sendo 10 e 15 respectivamente, depois criamos a variável “c” e definimos a ela a soma de a e b, ou seja, 25. Logo após, escrevemos isso em tela com o comando echo. Podemos adicionar não somente comandos como também comentários no código utilizando /* e */, para comentário em bloco e //, para comentário de apenas uma linha.

3.2

Documentação

Assim como o PHP GTK, as outras versões do PHP (PHP 4, PHP 5, etc.) também possuem documentação ou como é comumente chamado, manuais, disponíveis on-line em vários idiomas. Para maior conhecimento da linguagem, estes manuais são indispensáveis e estão disponíveis em http://php.net.

3.3

Conceito de variáveis

Variáveis armazenam valores. Pode-se referir a variáveis para obter seu valor ou para alterar seu conteúdo. No PHP elas são representadas por um cifrão ($) mais o nome da variável. Os nomes de variáveis válidos são iniciados por letras ou por um subscrito (_). Existe diferenciação entre nomes de variáveis maiúsculas e minúsculas. Quando a variável é declarada dentro de uma função, ela só estará disponível para o código desta função.

3.3.1

Tipos de dados

Cada variável possui um tipo de dado. O PHP suporta vários tipos de dados:

 

Inteiros Números inteiros (isto é, números sem ponto decimal); Números de dupla precisão Números reais (isto é, números que contêm um ponto decimal); String – Texto entre aspas simples (‘ ’) ou duplas (“ ”); Booleanos Armazenam valores verdadeiros ou falsos, usados em testes de condições;

 

4

Universidade Corporativa Prodemge 2014

Array Grupo de elementos do mesmo tipo; Objeto Grupo de atributos e métodos; Recurso Uma origem de dados externa; Nulo Nenhum valor.

– Uma origem de dados externa; Nulo – Nenhum valor. 3.3.2 Constantes Constantes são identificadores para

3.3.2

Constantes

Constantes são identificadores para valores simples. O seu conteúdo não muda durante a execução do código. Elas são criadas com a função define e, por convenção, são escritas com letras maiúsculas e não usam o cifrão no início.

são escritas com letras maiúsculas e não usam o cifrão no início. 5 Universidade Corporativa Prodemge

5

Universidade Corporativa Prodemge 2014

3.3.3

Operadores

São usados para efetuarem operações sobre as variáveis e constantes. Os operadores do PHP são:

 
 

+ soma - subtração * multiplicação / divisão ^ exponenciação % módulo, resto da divisão ++ acrescenta um a uma variável -- subtrai um de uma variável += soma um valor a uma variável e lhe atribui o resultado

3.3.4

Operadores lógicos

and ou && – operador lógico “e”, apenas retornando verdadeiro quando as duas condições envolvidas no teste forem verdadeiras. or ou | | – operador lógico “ou”, retornando verdadeiro quando uma ou as duas condições envolvidas no teste forem verdadeiras. ! – operador lógico “não”, invertendo o resultado de um teste. xor – operador lógico “ou exclusivo” que determina se uma de duas condições é verdadeira mas não ambas. Se ambas forem verdadeiras, o teste final será falso.

3.4

Fluxos de Controle

Fluxo de controle é como um programa decide realizar uma ação ao invés de outra. Para que haja essa ação, realizamos comparações para saber se a resposta da condição (caso a ser verificado) é true (verdadeira) ou false (falsa), podendo usar os seguintes operadores de comparação:

 

> Maior que < Menor que <= Menor ou igual >= Maior ou igual == Igual != Diferente

3.4.1

If / Else

Uma estrutura if é composta pela palavra reservada if, uma condição e um par de chaves { }. Se a resposta à condição for true, verdadeira, o código dentro das chaves será executado.

 
   
 

Além realizar alguma ação quando a condição é true, podemos realizar alguma ação se a condição for falsa, false. Podemos fazer isso usando uma instrução if / else:

 

6

Universidade Corporativa Prodemge 2014

Assim como antes, se a condição é verdadeira, então somente o código dentro do primeiro

Assim como antes, se a condição é verdadeira, então somente o código dentro do primeiro par de chaves será executado. Caso contrário, a condição é falsa, então somente o código dentro do segundo par de chaves, depois da palavra reservada else, será executado.

3.4.2

Switch

A instrução switch nos permite realizar operações de fluxo de controle mais complexas sem usar uma infinidade de ‘if’s e ‘else’s encadeados. Forma de testar uma dentre várias possibilidades. A declaração default executa caso nenhuma das opções for verdadeira. A declaração break faz com que o restante do código não seja executado caso o teste seja verdadeiro.

do código não seja executado caso o teste seja verdadeiro. VAMOS PRATICAR 1. Inicie uma tag

VAMOS PRATICAR

1. Inicie uma tag PHP, crie as variáveis: nome, sobrenome, idade, peso e endereço.

2. Preencha as variáveis criadas com seus dados.

3. Crie uma condição que imprima a mensagem “Já sou experiente!se você tem mais que 60 anos, caso contrário imprima “Estou em fase de aprendizagem!”.

3.5

Arrays

Arrays nos permite armazenar listas de informações em uma única variável. Arrays em PHP podem ser observados como mapeamentos ou como vetores indexados. Mais precisamente, um valor do tipo array é um dicionário onde os índices são as chaves de acesso. Vale ressaltar que os índices podem ser valores de qualquer tipo e não somente inteiros. Inclusive, se os índices forem todos inteiros, estes não precisam formar um intervalo contínuo. Como a

7

Universidade Corporativa Prodemge 2014

checagem de tipos em PHP é dinâmica, valores de tipos diferentes podem ser usados como índices de array, assim como os valores mapeados também podem ser de diversos tipos. Exemplo:

 
   
 

Equivalentemente, pode-se escrever:

 
 
 

3.5.1

Arrays Associativos

Uma característica bem interessante dos arrays em PHP é a capacidade de fazer associações. Quando nos referimos a associações, queremos dizer que, ao invés de usarmos números como índices, podemos usar strings (nomes). Dessa forma, fica muito mais simples e intuitivo obter um valor de um array, pois nomes fazem mais sentido do que números. Para usarmos o array associativo basta apenas substituir o número do índice por uma string. Veja o exemplo abaixo.

 
 

Caso queiramos inicializar o array diretamente usando associações, devemos usar seta larga para vincular um valor a uma chave. A seta larga é composta pelo sinal de igual mais o sinal de maior (=>). Veja o mesmo código usando as setas largas diretamente na associação.

 

8

Universidade Corporativa Prodemge 2014

3.5.2 Arrays Multidimensionais (Matrizes) PHP também possibilita o uso de matrizes que são arrays que

3.5.2 Arrays Multidimensionais (Matrizes)

PHP também possibilita o uso de matrizes que são arrays que contém outros arrays dentro dele. Ou seja, em cada posição de um array, possui outro array. Dessa forma nosso array pode ser bidimensional (2D), tridimensional (3D) e assim por diante. Quando utilizamos arrays multidimensionais (matrizes) existem mais índices numa mesma variável. Exemplos:

Array comum: $vetor [] Array bidimensional: $vetor [][] Array tridimensional: $vetor [][][] e assim por diante.

Os índices de um array multidimensional seguem as mesmas características dos índices vistos até agora, podendo ser tanto numérico como associativo. O exemplo abaixo toma como base o exemplo anterior, porém, iremos criar uma matriz para que haja mais de uma pessoa cadastrada.

uma matriz para que haja mais de uma pessoa cadastrada. VAMOS PRATICAR 1. Crie um array

VAMOS PRATICAR

1. Crie um array chamado paises.

2. Preencha o array criado com 5 paises de sua preferencia.

3. Crie um novo array multidimensional chamado lugares.

4. Este array será preenchido da seguinte forma: adicione 3 países, cada país terá duas características, cor (uma cor existente na bandeira do país) e cidade (uma cidade ‘famosa’ do país).

3.6 Estruturas de Repetição

9

Universidade Corporativa Prodemge 2014

3.6.1 For

Estrutura de looping que executa um bloco de código quantas vezes for indicado em uma variável. Deve-se definir a variável que será testada no looping, uma condição de teste e o incremento (ou decremento) da variável de controle.

e o incremento (ou decremento) da variável de controle. 3.6.2 While Estrutura de looping que não

3.6.2 While

Estrutura de looping que não necessita de um número determinado de iterações. Ele é executado enquanto uma condição for verdadeira.

Ele é executado enquanto uma condição for verdadeira. 3.6.3 Do-While Outra forma de looping que executa

3.6.3 Do-While

Outra forma de looping que executa um bloco de código testa uma condição e repete novamente o bloco de código (ou não).

condição e repete novamente o bloco de código (ou não). 3.6.4 Foreach O foreach é uma

3.6.4 Foreach

O foreach é uma simplificação do operador for para se trabalhar em coleções de dados, ou seja, vetores e matrizes. Ele permite acessar cada elemento individualmente iterando sobre toda a coleção e sem a necessidade de informação de índices. Por exemplo, supondo que fosse preciso percorrer um vetor com alguns elementos com o for. Seria necessário utilizar um contador para servir também de índice para acessar cada elemento, conforme a listagem a seguir.

Iteração em vetor com FOR:

10

Universidade Corporativa Prodemge 2014

Esse código poderia ser simplificado com a utilização do operador foreach , como mostrado abaixo:

Esse código poderia ser simplificado com a utilização do operador foreach, como mostrado abaixo:

a utilização do operador foreach , como mostrado abaixo: Assim, a cada iteração (repetição) a variável

Assim, a cada iteração (repetição) a variável $item representa um elemento do vetor. No foreach há a possibilidade de obter a referência do array usando a sintaxe “foreach ($arr as $key => $value)”

usando a sintaxe “foreach ($arr as $key => $value)” Assim será impresso: Chave: 1; Valor: um;

Assim será impresso:

Chave: 1; Valor: um; Chave: 2; Valor: dois; Chave: 3; Valor: três;

3.7 Include e Require

O PHP nos contempla com algumas formas de inserir um bloco de código de script PHP ou um arquivo externo que desejamos incluir no nosso projeto. Sendo elas:

externo que desejamos incluir no nosso projeto. Sendo elas: include(): Include tenta incluir um bloco de

include(): Include tenta incluir um bloco de código PHP. Caso falhe, o script retorna um warning (aviso) e prossegue com a execução do script. Pode ser utilizado em uma estrutura de condicionais que terá seu efeito perpetuado todas as vezes que for chamado. require(): Require tenta incluir uma página. Caso falhe, o script retorna um fatal error (erro fatal) e aborta a execução do script. Não é recomendável que se utilize em estruturas condicionais, a menos que se deseje o seu efeito, de ser executada apenas uma vez. include_once() & require_once(): Semelhante as suas funções originais com a única diferença que se o arquivo referenciado já foi incluso na página anteriormente, a função retorna ‘false’ e o arquivo não é incluído. Uma boa aplicação dessas funções é a inclusão do arquivo de conexão com o banco de dados. Não precisamos ficar incluindo em todas as páginas de nossos projetos as linhas de código para conexão com o BD. Imaginem caso ocorra alteração nas conexões do banco, precisaremos abrir todos os arquivos do projeto para alterar as devidas conexões. Com isso realizamos a inclusão nas páginas do arquivo de conexão. Logo, em caso de manutenção é só alterar o arquivo de origem.

de conexão. Logo, em caso de manutenção é só alterar o arquivo de origem. 11 Universidade
de conexão. Logo, em caso de manutenção é só alterar o arquivo de origem. 11 Universidade

11

Universidade Corporativa Prodemge 2014

3.8 Funções Funções são trechos reutilizáveis de código que podemos usar para poupar um monte

3.8

Funções

Funções são trechos reutilizáveis de código que podemos usar para poupar um monte de comandos desnecessários e deixar nossos programas e aplicações mais eficientes.

3.8.1 Funções nativas

O PHP possui mais de 700 funções nativas, ou seja, funções prontas para serem utilizadas. No decorrer do curso

veremos algumas delas e os restantes estão disponíveis em http://php.net/. Temos várias funções nativas para diferentes necessidades, como:

funções nativas para diferentes necessidades, como: 3.8.2 Construindo uma função Além, das funções nativas,

3.8.2 Construindo uma função

Além, das funções nativas, o PHP nos permite definir nossas próprias funções.

A sintaxe básica para definir uma função é:

function nome_da_função ([arg1, arg2, arg3]) { Comandos;

12

Universidade Corporativa Prodemge 2014

 

; [return <valor de retorno>];

}

Qualquer código PHP válido pode estar contido no interior de uma função. Como a checagem de tipos em PHP é dinâmica, o tipo de retorno não deve ser declarado, sendo necessário que o programador esteja atento para que a função retorne o tipo desejado. É recomendável que esteja tudo bem documentado para facilitar a leitura e compreensão do código. Para efeito de documentação, utiliza-se o seguinte formato de declaração de função:

 

tipo_funcao function nome_da_funcao (tipo arg1, tipo arg2,

);

Este formato só deve ser utilizado na documentação do script, pois o PHP não aceita a declaração de tipos. Isso significa que em muitos casos o programador deve estar atento aos tipos dos valores passados como parâmetros, pois se não for passado o tipo esperado não é emitido nenhum alerta pelo interpretador PHP, já que este não testa os tipos.

 
   
 

Os tipos são usados tanto para funções quanto para variáveis, sendo eles:

 

public - torna uma variável/função disponível a partir de qualquer lado, mesmo outras classes e instâncias do objeto. private - quando queremos que uma variável/função esteja visível apenas dentro da sua própria classe. protected - quando queremos que uma variável/função esteja visível em todas as classes que estendem a classe atual, incluindo classes pai.para funções quanto para variáveis, sendo eles:   3.8.3 Função dentro de função Uma facilidade que para funções quanto para variáveis, sendo eles:   3.8.3 Função dentro de função Uma facilidade que

3.8.3

Função dentro de função

Uma facilidade que a linguagem PHP permite é que podemos passar como parâmetro de uma função o retorno de outra função como no exemplo a segui. Exemplo:

 

13

Universidade Corporativa Prodemge 2014

 
   
 

A chamada de função acima irá imprimir 40, pois a funcao_numero_umrecebe um valor como parâmetro e retorna

valor multiplicado por dois, a funcao_numero_doisrecebe como parâmetro o retorno multiplicado e retorna esse valor multiplicado por dois e é mostrado na tela.

o

VAMOS PRATICAR

 
 

1.

Crie as seguintes funções:

 

A. Dado um número inteiro positivo n, calcular a soma dos n primeiros números inteiros positivos.

 

B. Dada uma sequência de números inteiros não nulos, seguida por 0, imprimir seus quadrados.

C. Dado um número inteiro positivo n, imprimir os n primeiros naturais ímpares.

Exemplo: Para n = 4 a saída deverá ser 1, 3, 5, 7

3.9

Classes e Objetos

Objetos são combinações de dados (variáveis) e ações (funções). Objetos PHP são instâncias de classes, uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades ou atributos o objeto terá. Além da especificação de atributos, a definição de uma classe descreve também qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades são descritas através de métodos. Um método nada mais é que o equivalente a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os atributos que foram definidos para a classe. Em UML (Unified Modeling Language), a representação para uma classe no diagrama de classes é:

 
 

A

especificação de uma classe é composta por três regiões, nome da classe, atributos e métodos.

3.9.1

Nome da classe

Um identificador para a classe, que permite referenciá-la posteriormente, por exemplo, no momento da criação de um objeto.

3.9.2

Atributos

 

14

Universidade Corporativa Prodemge 2014

O

conjunto de propriedades da classe. Para cada propriedade, especifica-se:

 

nome: um identificador para o atributo. tipo: o tipo do atributo (inteiro, real, caráter, etc.) valor_default: opcionalmente, pode-se especificar um valor inicial para o atributo. visibilidade: opcionalmente, pode-se especificar o quão acessível é um atributo de um objeto a partir de outros objetos. Valores possíveis são:

 

- (privativo), nenhuma visibilidade externa; + (público), visibilidade externa total; e # (protegido), visibilidade externa limitada.

 

3.9.3

Métodos

O

conjunto de funcionalidades da classe. Para cada método, especifica-se sua assinatura, composta por:

 

nome: um identificador para o método. tipo: quando o método tem um valor de retorno, o tipo desse valor. lista de argumentos: quando o método recebe parâmetros para sua execução, o tipo e um identificador para cada parâmetro. visibilidade: como para atributos, define o quão visível é um método a partir de objetos visibilidade: como para atributos, define o quão visível é um método a partir de objetos

visibilidade: como para atributos, define o quão visível é um método a partir de objetos de outros classes.

As técnicas de programação orientada a objetos recomendam que a estrutura de um objeto e a implementação de seus métodos devem ser tão privativos como possível. Normalmente, os atributos de um objeto não devem ser visíveis externamente. Da mesma forma, de um método deve ser suficiente conhecer apenas sua especificação, sem necessidade de saber detalhes de como a funcionalidade que ele executa é implementada.

3.9.4

Criando Classes

A

criação de uma classe é simples como podemos ver a seguir:

 
 
 

3.9.5

Instanciando Objetos

Em programação orientada a objetos, a palavra "instanciar" significa criar. A instância é objeto criado com base em uma classe definida. Conceitualmente, a instância possui duas propriedades fundamentais: a classe a partir da qual foi criado, que define suas propriedades e métodos padrão, e um estado, que representa o conjunto de valores das propriedades e métodos definidos naquela instância específica. A instância possui um ciclo de vida: é criada (e neste momento seu construtor é invocado), manipulada conforme necessário, e destruída quando não for mais útil para o programa. O estado da instância evolui ao longo do seu ciclo de vida: seus atributos são definidos e têm seu valor alterado através de seus métodos e de manipulação realizada por outros objetos.

 

15

Universidade Corporativa Prodemge 2014

3.9.6 Herança Herança em orientação a objeto pode ser entendida como um mecanismo que permite

3.9.6

Herança

Herança em orientação a objeto pode ser entendida como um mecanismo que permite construir uma nova classe com base em uma classe previamente existente, em que a nova classe herda automaticamente todos os atributos, comportamentos e implementações da classe-pai. A herança, podemos reutilizar partes de código já definidas, além da agilidade, ela elimina a necessidade de duplicar ou rescrever certo código. Essas características nos permitem ao invés de escrevermos uma estrutura totalmente nova, reaproveitar a estrutura existente mesmo que a mesma nos forneça apenas uma base abstrata para o desenvolvimento. Para estender uma nova classe (chamaremos de subclasse), utilizamos a palavra reservada extends. Quando criamos uma subclasse, todos os métodos pertencentes a classe pai podem ser executados. Também é possível sobrescrever os seus métodos e propriedades, a fim de criar novos, com outras características. Se na subclasse é escrito um método com o mesmo nome do método existente na classe pai, passa a vigorar o método da classe filha “subclasse. É importante destacar que somente os métodos protect e public podem ser reescritos. Nada melhor que um exemplo para facilitar o entendimento por isso, vamos retornar a nossa classe pessoa e a partir dela criaremos a classe funcionário, pois o funcionário é uma pessoa, consequentemente, funcionário herdará as características da classe pessoa, ao invés de duplicarmos tudo de novo na classe funcionário.

16

Universidade Corporativa Prodemge 2014

Nota que a “ ClasseFilho ” herda o método reajustarSalario automaticamente da “ClassePai” e usa-o

Nota que a ClasseFilhoherda o método reajustarSalario automaticamente da “ClassePai” e usa-o no método somarSalarioComReajuste.

3.9.7

Encapsulamento

O Encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe. É uma forma eficiente de

proteger os dados manipulados dentro da classe, além de determinar onde esta classe poderá ser manipulada. Elementos public são utilizados em variáveis e métodos universais, onde não há problema nem necessidade de segurança daquele dado. Exemplo: horas, constantes, variáveis globais, nome do programa ou da empresa etc. Diferente dos elementos public, os private ou privado são informações 'escondidas', ou no mínimo controladas. Por exemplo, é bem comum ver todas as variáveis de uma classe definidas como private, e usar métodos public do tipo set, para dar um valor a esta variável. Isso tudo tem um motivo: variáveis private não podem ser acessadas nem por

suas subclasses.

O protected ou protegido é pra quando não queremos deixar um atributo ou método público, livre para todos. Porém,

você quer compartilhar ele com as subclasses. O protected é um intermediário entre public e private. Como se fosse

um segredo de família (subclasses). Para todas as outras classes, atributos protected são invisíveis, ou seja, estamos protegendo do acesso externo.

A seguir três exemplos usando Public, Private e Protected:

três exemplos usando Public , Private e Protected : Public Neste exemplo podemos ver atributos e

Public

Neste exemplo podemos ver atributos e métodos públicos na classe TesteEncapsulamentoonde os mesmos poderão ser acessados em qualquer código PHP que importe esta classe que esta no arquivo TesteEncapsulamento.php, como veremos no index.phpabaixo.

17

Universidade Corporativa Prodemge 2014

Private O modelo usando private demonstra que atributos e métodos que são privados não poderão
Private O modelo usando private demonstra que atributos e métodos que são privados não poderão

Private

O modelo usando private demonstra que atributos e métodos que são privados não poderão ser usados por classes herdadas e nem por instancias do objeto que tenha métodos privados, como mostrado no exemplo abaixo. Nota que há dois casos de erro no código abaixo por ser tentar utilizar métodos privados em uma instância.

18

Universidade Corporativa Prodemge 2014

Protected Notamos no exemplo abaixo que é possível usar métodos e atributos protegidos somente em
Protected Notamos no exemplo abaixo que é possível usar métodos e atributos protegidos somente em

Protected

Notamos no exemplo abaixo que é possível usar métodos e atributos protegidos somente em sua herança. A classe TesteHerancaComEncapsulamentoherda os métodos e atributos de sua classe mãe TesteEncapsulamento. Para que possamos usar os métodos protegidos em uma instância de classe. Pois uma instancia de classe não poderá usar os métodos protegidos da classe mãe, por isso a classe filha irá herdar os dados protegidos e repassa-la de forma publica para suas instâncias.

19

Universidade Corporativa Prodemge 2014

3.9.8 Polimorfismo O Polimorfismo é a existência de uma espécie sob várias formas. É um

3.9.8

Polimorfismo

O Polimorfismo é a existência de uma espécie sob várias formas. É um artefato simples, mas seu entendimento é muito importante na orientação a objetos. Pois podemos derivar classes de uma mesma superclasse e utilizar métodos iguais, porém com comportamentos diferentes. Veja o exemplo:

20

Universidade Corporativa Prodemge 2014

Repare há 2 arquivos diferentes onde a classe “ Calculo2 ” está herdando as características

Repare há 2 arquivos diferentes onde a classe Calculo2está herdando as características da classe Calculo1. Com isso há a possibilidade de receber as resposta de Calculo1(dividindo) e Calculo2(somando) criando apenas o objeto da classe Calculo2:

criando apenas o objeto da classe “ Calculo2 ” : Mas digamos que no calculo 2

Mas digamos que no calculo 2 haja a necessidade de ter outra uma outra função dividir (4 por 2) que será específica apenas na determinada aplicação “Calculo2sem a necessidade de alterar a classe pai “Calculo1.

a neces sidade de alterar a classe pai “ Calculo1 ” . Dessa forma será demonstrado

Dessa forma será demonstrado o funcionamento do polimorfismo. Quando for executado o método $calculo-> dividir()o PHP irá procurar dentro da classe Calculo2a função dividir e, encontrando, executa a divisão 4/2 e, se ela não existir, ele irá executar a outra função dividir 10/2, que está dentro do arquivo Calculo1.php. Teoricamente

21

Universidade Corporativa Prodemge 2014

poderíamos encontrar algum problema ao estender uma classe da outra e utilizar duas funções com o mesmo nome, mas é exatamente o contrário que o polimorfismo nos permite fazer.

4

Banco de dados

O

ponto de partida para a criação de uma aplicação é termos um banco de dados. Podemos usar vários tipos de banco

de

dados; IBM DB2 (IBM DB2, Cloudscape and Apache Derby), Mssql (Microsoft SQL Server), MySQL (MySQL

Drivers and Plugins), SQL Oracle, etc.

 

O

melhor banco de dados a ser usado no nosso caso é o MySql.

 

4.1

MySQL (Gerenciador de Banco de Dados)

O

MySQL é o gerenciador de banco de dados mais usado com o PHP. Existem muitas funções pré-definidas para

manipulação de conexões com bancos de dados.

 

A

função mysql_connect tenta uma conexão com um servidor MySql. Deve-se passar como parâmetros: o nome do

servidor (ou número IP) onde o MySQL está sendo executado, o nome de usuário e a senha deste usuário. O comando alternativo die trata um possível fracasso na conexão.

A

função mysql_select_db seleciona qual base será selecionada dentro do banco de dados que foi conectado. O

comando alternativo die trata um possível fracasso na seleção da base, podendo ser incluída uma mensagem customizada.

 
   
 

A

função mysql_query faz consultas à base previamente selecionada. Devem-se passar, como parâmetros, os

comandos SQL apropriados. Novamente, o comando alternativo die pode tratar um não sucesso na consulta.

 
 
 

Para podermos testar nossos códigos em PHP é necessária a utilização de um servidor com suporte a PHP. Caso ainda não possua um serviço de hospedagem, ou caso seu serviço de hospedagem não de suporte à linguagem, você pode testar suas páginas em PHP em um servidor local. Vamos para dar andamento ao conteúdo da apostila usar o WAMP Server, que é um pacote que já instala para você o servidor internet local com suporte a PHP e MySQL. Basta ir clicando e avançando. Após a instalação será mostrado próximo ao relógio o ícone de seu servidor web.

4.2

Conexão com Banco de Dados

Existe uma maneira de começar a utilizar PHP em Windows sem ter que sofrer as complicações típicas da instalação dos servidores necessários para programar em PHP. Temos disponível todo o ambiente de desenvolvimento empacotado e pronto para usar. Dentre as várias soluções desse tipo disponíveis, destacam-se o WAMP, o XAMPP, o EasyPHP, entre outras. Cada uma possui seu próprio conjunto de configurações e de recursos que tem por objetivo “facilitar” a vida do desenvolvedor, que pode tanto instalar o ambiente como um programa comum e também iniciar e parar os serviços facilmente. Sendo assim, devemos instalar um pacote chamado WAMP ou XAMPP, que permite instalar e configurar em um só processo o servidor Apache, a base de dados MySQL e o módulo de programação em PHP.

 

22

Universidade Corporativa Prodemge 2014

WAMP ou XAMPP são sistemas indicados para os usuários que não têm instalado no sistema nenhum dos programas necessários para programar em PHP (Apache, PHP e MySQL), já que realiza uma instalação completa e desde zero. Mas também podem utilizar este programa os usuários que dispõem de Apache, PHP e/ou MySQL em seu sistema. Em cujo caso, simplesmente se realizará outra cópia das aplicações em um diretório distinto, que a princípio, não tem porque interferir com as outras instalações alojadas em nosso computador.

4.2.1 Instalação XAMPP ou WAMP

A instalação se realiza através de um executável Windows onde podem se introduzir poucas configurações, apenas o diretório onde desejarmos que se instalem os programas. Depois do processo de instalação foram criados dois serviços com o servidor web e o de base de dados:

Serviço wamp/xamp apache: Relacionado com o servidor Apache. Serviço wamp/xamp mysql: Relacionado com a base de dados MySQL. Dentro do diretório onde tivermos instalado WAMP/XAMPP terá sido criado uma pasta chamada "www", que corresponde com o diretório de publicação, ou seja, o lugar onde devem ser colocadas as páginas web. Durante a instalação também devemos decidir se desejamos que WAMP/XAMPP se inicie automaticamente ao ligar o computador ou se desejamos que seu funcionamento se realize manualmente.

se desejamos que seu funcionamento se realize manualmente. 4.2.2 Funcionamento dos servidores Após a instalação de

4.2.2 Funcionamento dos servidores

Após a instalação de um desses pacotes temos que inicia-lo sempre que formos utiliza-lo, caso não tivermos selecionado que o servidor se inicie automaticamente.

selecionado que o servidor se inicie automaticamente. Uma vez em funcionamento obteremos um ícone na barra

Uma vez em funcionamento obteremos um ícone na barra de tarefas com a forma parecida a de um marcador de velocidade. Se clicarmos sobre esse ícone, abrirá um menu com opções variadas para providenciar os serviços relacionados com o pacote.

4.2.3 PHPMyAdmin

para providenciar os serviços relacionados com o pacote. 4.2.3 PHPMyAdmin 23 Universidade Corporativa Prodemge 2014

23

Universidade Corporativa Prodemge 2014

PHPMyAdmin é um aplicativo web desenvolvido em PHP para administração do MySQL pelo navegador web. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. Atualmente o XAMPP insere o PHPMyAdmin junto com

o servidor PHP e MySql quando instalado. Site Oficial: http://www.phpmyadmin.net

quando instalado. Site Oficial: http://www.phpmyadmin.net 1. Lista dos bancos de dados já criados 2. Aba onde

1. Lista dos bancos de dados já criados

2. Aba onde mostra os bancos de dados já criados e possibilita a criação de novos.

4.3 GET e POST

Quando é desenvolvido um site dinâmico, há necessidade de passar alguns valores de uma página para a outra, para que seja possível, então, realizar operações como consultas e inserções no banco, autenticação de usuários, etc. No PHP há dois métodos, o GET e POST.

de usuários, etc. No PHP há dois métodos, o GET e POST. 4.3.1 GET É o

4.3.1

GET

É o método mais simples e mais limitado para se usar. Neste caso os valores e seus respectivos identificadores são transmitidos pela URL, como exemplo: http://www.meusite.com/versecao.php?id=32&descricao=Minha_SecaoEsse exemplo demonstra na prática o uso da passagem de parâmetros via GET. A presença da interrogação (?) indica

o fim do endereço e o início da declaração dos nossos valores que serão passados. Neste caso, a página versecao.php” receberá uma variável chamada “id” com o valor “32”, e outra variável “descricao” com valor “Minha_Secao”. Como os valores são passados pela URL, há um limite para o número de bytes que serão enviados. Podendo ser enviado no máximo 1024 caracteres, o que limita bastante a possibilidades com esse método. Outra questão, agora referente à segurança, é sobre os tipos de dados que você poderá enviar via URL. Como nesse método os dados são visíveis ao usuário e o navegador salva no histórico, não é bom, que seja passado informações confidenciais via GET, como senhas por exemplo.

24

Universidade Corporativa Prodemge 2014

O

ideal é que se use o método GET somente para passar parâmetros para pesquisas e outras informações não críticas.

Para solucionar os outros problemas temos disponível o método POST.

 

O PHP armazena as variáveis vindas por GET em arrays associativos, vetores cujos índices são strings. Vejamos como seria o retorno do exemplo GET acima. Foram passadas duas variáveis: ide “descrição”. Para pegar o ide “descrição” fazemos:

 

$meuId = $_GET[“id”] e $minhaDescricao = $_GET[“descricao”]

 
e $minhaDescricao = $_GET[“descricao”]   4.3.2 POST O método POST representa uma alternativa ao

4.3.2

POST

O

método POST representa uma alternativa ao método GET para as questões de capacidade e segurança. Nesse

método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho e os

dados não são visíveis ao usuário. Há única condição é que se use um formulário para a transferência dos dados. Na tag form, temos um atributo action. Nesse atributo é que setado a página que receberá nossas informações. Quando

botão submit for acionado todos os dados desse formulário serão passados para a página definida no action. É uma maneira segura e com mais capacidade em termos de espaço. No caso do método POST, temos um array chamado $_POST que armazenará os dados vindos do formulário. Vale lembrar que, nesse caso, os índices do array serão os nomes dados aos inputs no seu formulário. Para acessar os valores vindos de um formulário com nome e idade, fazemos:

o

 

$nome = $_POST[“nome”] e $idade = $_POST[“idade”]

 
$_POST[“nome”] e $idade = $_POST[“idade”]   4.4 Formulário Os valores enviados através de um

4.4

Formulário

Os valores enviados através de um formulário podem ser recuperados pela variável predefinida $_POST. Através dela

é

possível obter os dados que foram enviados através do método POST do HTML, bastando indicar o nome do campo

do formulário. No comando action do formulário, deve-se indicar a página PHP que irá receber os valores. O mesmo documento pode conter o código e o formulário.

 
   
 

4.4.1

Salvando e listando dados do formulário

 

25

Universidade Corporativa Prodemge 2014

Criaremos a classe Conexao, esta classe ela cria uma conexão com o banco de dados MySQL passando por parâmetro no método mysql_connectendereço do banco de dados, login e senha. Logo em seguida há um if que verifica se há conexão senão irá disparar a mensagem de erro “Não conectado” e a cauda do erro emitido pelo MySQL. Na função mysql_select_dbé passado por parâmetro o a base de dados selecionada e o link de conexão criado acima. Novamente é verificado se há conexão senão irá disparar o erro.

é verificado se há conexão senão irá disparar o erro. Criaremos o arquivo “ index.php ”

Criaremos o arquivo index.phpque será a página principal, neste arquivo haverá um formulário para listar todos os clientes cadastrados pelo formulário. Os valores recebidos no foreach vem de um método da classe “Clientes” método “listarClientes” que será mostrado em seguida. Há um botão para adicionar um novo cliente que redirecionará a pagina para o arquivo adicionar_cliente.php, que há um formulário para o cadastro do mesmo.

” , que há um formulário para o cadastro do mesmo. O arquivo abaixo é o

O arquivo abaixo é o adicionar_cliente.phpque haverá um formulário em HTML que cadastra o “nome” e “telefone” do cliente. E envia para o método “salvarCliente“ da classe “Clientes”.

26

Universidade Corporativa Prodemge 2014

Finalmente iremos adicionar a classe “Clientes” no arquivo “Clientes.php”. Esta classe tem dois métodos um

Finalmente iremos adicionar a classe “Clientes” no arquivo “Clientes.php”. Esta classe tem dois métodos um para salvar e outro para listar clientes. O método “salvarCliente” cria uma nova conexão com bancos de dados e executa a query de insert, esse método é chamado no arquivo adicionar_cliente.php. O método “listarClientes” executa uma query se select que retorna todos os clientes cadastrados e vetoriza os resultados no array $clientes usando o operado while, esse método é chamado no “index.php”.

operado while , esse método é chamado no “index.php”. VAMOS PRATICAR 1. Acessar o PHPMyAdmin: localhost/phpmyadmin

VAMOS PRATICAR

1. Acessar o PHPMyAdmin: localhost/phpmyadmin

2. Criar Base de dados: exemplo

27

Universidade Corporativa Prodemge 2014

3.

Criar tabela: clientes

3. Criar tabela: clientes 1. Criar um CRUD para cliente     1.1.Listar 1.2.Cadastrar 1.3.Editar

1. Criar um CRUD para cliente

 
 

1.1.Listar

1.2.Cadastrar

1.3.Editar

1.4.Excluir

2. Criar classe para Conexão e Clientes

 

5

Referências

Manual PHP Disponível em < http://php.net/manual/pt_BR/index.php>. Acesso em 01 de set. de 2014.

Revista PHP Disponível em < http://www.revistaphp.com.br/>. Acesso em 03 de set. de 2014.

P. F. Marcos, PHP, Apostilando.com Disponível em <http://www.apostilando.com>. Acesso em 10 de set. de 2014.

Araújo, Emanuel, A Construção do Livro: Princípios da técnica de editoração Rio de Janeiro, Nova Fronteira/INL, 1986

 

28

Universidade Corporativa Prodemge 2014