Buscar

PHP_OO_MVC_PDO

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
Desenvolvimento para Internet
Professora: Clênia Melo 
E-mail: cleniamendonca@gmail.com
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
Setembro de 2014
*
*
Itens a serem abordados
Model View Controller - MVC
PHP Data Object - PDO
*
*
MVC – Model View Controller
Model 
Significa modelo
Um modelo é um objeto que representa as informações do domínio de negócios da aplicação. 
A camada de Modelo pode ser representada por um Domain Model ou um Active Record, dentre outros.
*
*
MVC
View
Significa visualização. 
Nesta camada, tem a definição da interface com o usuário, como os campos serão organizados e distribuídos na tela. 
Por exemplo: se existe um cadastro de pessoas, em algum lugar precisa defini como será este formulário, sua estrutura.
Esta representação pode ser uma página HTML, por exemplo.
*
*
MVC
View
A camada de visualização (VIEW) deve ser responsável somente pela visualização
Não exercer qualquer tipo de controle de fluxo de execução da aplicação, tampouco deverá conter a lógica de negócios.
*
*
MVC
Controller
Significa controle. 
Nesta camada tem a manipulação dos inputs do usuário, sua interpretação e a execução das tarefas correspondentes. 
Esta camada é formada por um conjunto de objetos que recebem informações da View e tratam de atualizar o modelo de dados (Model) de acordo com a ação do usuário.
*
*
MVC
Vantagem: 
A separação entre o modelo de dados (Model) e a visualização (View), por exemplo, permite ao desenvolvedor reutilizar um mesmo objeto de modelo em diversas visualizações diferentes.
*
*
MVC
Exemplo: 
Imagine uma listagem de clientes e uma listagem de compras de um cliente, ou uma listagem de clientes por cidade.
Todas são visualizações diferentes, mas tratam de um objeto do modelo de negócios comum: o cliente.
A camada de visualização (View) deve se preocupar com a disposição de objetos, com a organização visual, ao passo que o modelo deve se preocupar com regras de negócios e interação com o banco de dados.
*
*
MVC
As três camadas são distintas, porém interagem umas com as outras.
*
*
MVC
As camadas View e Controller dependem do Modelo, porém este é totalmente independente das demais, no sentido de que o Modelo não faz referência a objetos das duas outras camadas.
View e Controller dependem uma da outra: 
A camada de controle depende dos dados provindos da View e das ações disparadas pela mesma; 
A View aciona a camada Controller e aguarda o retorno necessário.
*
*
PDO
O que é o PDO?
PDO (PHP Data Objects) é um módulo de PHP montado sob o paradigma Orientado a Objetos e cujo objetivo é prover uma padronização da forma com que o PHP se comunica com um banco de dados relacional. 
Este módulo surgiu a partir da versão 5 de PHP. 
PDO é uma interface que define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados.
*
*
PDO
Por que utilizar o PDO?
Antes da chegada do PDO, a linguagem PHP oferecia suporte à comunicação com diferentes modelos de SGBD através de módulos específicos. 
A maioria deles provia uma biblioteca de funções e utilizava um resource para representar a conexão e outro para representar um resultset (o resultado de uma consulta). 
As operações eram feitas sobre as variáveis de resource.
*
*
PDO
Por que utilizar o PDO?
Cada driver implementava suas operações conforme imaginavam ser mais adequados. 
Embora alguns deles tivessem um funcionamento semelhante, a ordem dos parâmetros nem sempre era a mesma e podia causar uma certa confusão entre programadores.
*
*
PDO
Ainda hoje muitas pessoas consideram o uso do PDO uma opção, analisando a possibilidade de um determinado projeto mudar de banco, utilizando o PDO somente se essa possibilidade existir. 
O grande perigo nessa análise superficial é que nem sempre no início de um projeto temos essa visão e se tiver que mudar não adianta lamentar, então em cima disso particularmente recomendamos a utilização deste recurso, principalmente se o projeto necessitar trabalhar com mais de um tipo de banco.
*
*
PDO
Como conectar a um banco MySQL usando PDO
Testando a conexão
<?php
 $banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password') or print (mysql_error());
?>
*
*
PDO (PHP Data Object)
Representa uma conexão entre PHP e um servidor de banco de dados
*
*
PDO (PHP Data Object)
PDO_MYSQL
É um driver que implementa a interface PHP Data Objects (PDO) para acesso do PHP ao Mysql
A utilização do PDO fornece uma camada de abstração em relação a conexão com o banco de dados
*
*
PDO (PHP Data Object)
O PDO efetua a conexão com diversos banco de dados da mesma maneira, modificando apenas a sua string de conexão.
A PDO fornece uma camada de abstração de dados de acesso
Significa que, independente de qual banco de dados esteja usando, usa as mesmas funções para manipular os dados, 
É seguro contra SQL Injection.
*
*
PDO (PHP Data Object)
A classe PDO foi incorporada ao PHP na versão 5.1 e é disponibilizado junto com a PECL do PHP 5. 
Além disso, exige características orientadas a objetos do core do PHP 5.
*
*
PDO (PHP Data Object)
Conexão com o banco de dados com o PDO
$con = new PDO(“mysql:host=localhost;dbname=xxxx”,”root”,”senha”);
A classe PDO em sua instância pede como parâmetro:
Banco de dados que será utilizado
O caminho do banco de dados
Nome da base de dados
Login
Senha
BANCO DE DADOS:host=CAMINHO BANCO;dbname=NOME BASE
*
*
PDO (PHP Data Object)
Basta modificar essa string e terá conexão com qualquer outro banco de dados
Estamos efetuando uma conexão simples com o banco de dados mysql.
*
*
PDO (PHP Data Object)
Exemplo:
Inserção de dados:
O programa vai se conectar com o banco chamado “carros” no servidor localhost
Em seguida vai os inserir dados na tabela veiculos
Depois fechar a conexão. 
Caso ocorra algum erro será gerada uma exceção devidamente tratada com o bloco try/catch
*
*
<?php
try{ //instancia o objeto PDO, conectando com o banco mysql
 $conn = new PDO('mysql:host=localhost;port=3306;dbname=carros', 'root', '');
 //executa as instruções SQL
 $conn->exec("INSERT INTO veiculos (codigo, fabricante, modelo) VALUES (1, 'Honda', 'Civic')");
 $conn->exec("INSERT INTO veiculos (codigo, fabricante, modelo) VALUES (2, 'Honda', 'City')");
 $conn->exec("INSERT INTO veiculos (codigo, fabricante, modelo) VALUES (3, 'Honda', 'Fit')");
 $conn->exec("INSERT INTO veiculos (codigo, fabricante, modelo) VALUES (4, 'Honda', 'Accord')");
 //fecha a conexão
 $conn = null;
}
catch (PDOException $i){
	//se houver exceção, exibe
	print "Erro: <code>" . $i->getMessage() . "</code>";
}
?>
*
*
PDO (PHP Data Object)
 Exemplo:
Listagem de dados. 
O programa vai se conectar ao banco conforme o exemplo anterior
Em seguida vai listar os dados tabela veiculos 
E exibir o fabricante e modelo
*
*
 Exemplo:
Listagem de dados. 
Veja como os resultados são percorridos com foreach:
<?php
try{
	//instancia o objeto PDO, conectando com o banco mysql
 $conn = new PDO('mysql:host=localhost;port=3306;dbname=carros', 'root', '123456');
 //executa a instrução de consulta
 $result = $conn->query("SELECT fabricante, modelo FROM veiculos");
 if($result){
	//percorre os resultados via o laço foreach
	foreach($result as $linha){
		//exibe o resultado
		print $linha['fabricante'] . " - " . $linha['modelo'] . "<br>\n";
	}
}
 //fecha a conexão
 $conn = null;
}
catch (PDOException $i) {
	//se houver exceção, exibe
	print "Erro: <code>" . $i->getMessage() . "</code>";
}
?>
*
*
PDO (PHP Data Object)
 Exemplo:
Listagem de dados. 
Veja como os resultados são percorridos com foreach:
Resultado:
Honda - Civic
Honda - City
Honda - Fit
Honda - Accord
*
*
 Exemplo:
Listagem de dados. 
Podemos também retornar os dados usando a função fecth(), assim:
<?php
try{
	//instancia o objeto PDO, conectando com o banco mysql
 $conn = new PDO('mysql:host=localhost;port=3306;dbname=carros', 'root', '');
 //executa a instrução de consulta
 $result = $conn->query("SELECT fabricante, modelo FROM veiculos");
 if($result)	{
		//percorre os resultados via o fetch()
		while ($linha = $result->fetch(PDO::FETCH_OBJ)){
			//exibe resultado
			print $linha->fabricante . " - " . $linha->modelo . "<br>\n";
		}
	}
 //fecha a conexão
 $conn = null;
}
catch (PDOException $i){
	//se houver exceção, exibe
	print "Erro: <code>" . $i->getMessage() . "</code>";
}
?>
*
*
PDO (PHP Data Object)
Atividade
No site da Biblioteca Virtual:
Realize o cadastro, a busca, a alteração, a exclusão no banco de dados para Editora e Livro
OBS: No caso da exclusão, inclua um flag para ativo e inativo.
*
*
PDO
Documentação Oficial do PDO
http://php.net/manual/pt_BR/book.pdo.php

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando