Baixe o app para aproveitar ainda mais
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
Compartilhar