PHP Avançado Magno Leal.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Paulo Marques Hernâni Pedroso
Framework para desenvolvimento web
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Java: Pacotes e Modificadores de Visibilidade
Modelagem Orientada a Objetos
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Diagrama de Classes.
MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP
Classes e objetos P. O. O. Prof. Grace.
TÉCNICAS DE PROGRAMAÇÃO II
DIAGRAMA DE COMPONENTES
Curso de extensão em Desenvolvimento Web
Se liga aí, que é hora da revisão!
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Rodrigo Cristiano Silva
Aula prática 13 Orientação a Objetos – C++ Parte 1
Conceitos básicos de orientação a objetos
Sobrecarga e Encapsulamento
Interface Chaimom Antônio da Silva. Interface - Tópicos Definição Objetivos Regras Boas Práticas Implementação.
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Rodrigo Cristiano Silva
Introdução ao Framework Django
Programação I Aula 2 (Métodos)
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Tipos Abstratos de Dados
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Programação Orientada à Objetos
Programação Orientada a Objetos - Java
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Felipe Ferreri Tonello
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Ruby (2/2) André Braga Patrícia Lustosa. Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje.
Aula prática 14 Orientação a Objetos – C++ Parte 2
Implementação Orientada a Objetos – Aula 03
Implementação MVC Pedro Antonino.
Banco de Dados Aplicado ao Desenvolvimento de Software
Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos
Programação Orientada à Objetos
Padrão- MVC Model, View, Controller
Aula Prática 4 Monitoria IP/CC (~if669).
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Bruno Inojosa MCP .NET Framework
Programação para Internet
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Programação para Web I AULA 2 BANCO DE DADOS.
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Aula 11 Orientação a Objeto (OO)
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Persistência de dados e padrão DAO
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

PHP Avançado Magno Leal

Ementa MANIPULAÇÃO DE BANCO DE DADOS COM PDO: ORIENTAÇÃO OBJETO: Visão Geral sobre a API do PDO Funções para manipulação de banco dados no php Conectando no Banco de Dados Listando Dados Inserindo Dados Atualizando Dados Excluindo Dados PHPSMARTY: o Visão geral o Como utilizar o Usando tags e funções o Criando tags personalizadas ORIENTAÇÃO OBJETO: Introdução Classe Objeto Herança Polimorfismo Abstração Interfaces Encapsulamento ARQUITETURA MVC: Model View Contoller Padrões de Projeto

Aula 1: Orientação Objeto

Introdução Programação mais próxima do MUNDO REAL; Visão do sistema sobre objetos reais, os quais possuímos maior compreensão;

Classe Estrutura que define um tipo de dados, podendo conter atributos (estado) e também funções métodos (comportamento);

Classe Construtores: Define o comportamento inicial de um objeto, método chamado na instanciação do objeto (new); Destrutores: Método executado automaticamente quando o objeto é desalocado da memória;

Prática 01 Crie uma classe e defina nela atributos e métodos coerentes. Crie um comportamento inicial para classe. Defina também um comportamento caso o objeto dessa classe seja desalocado.

Objeto Objeto é uma instância de uma classe, ele existe durante um instante de tempo – da sua criação a sua destruição. Acessando atributos e métodos:

Prática 02 Teste a classe que você criou utilizando os atributos e métodos dela. Fique a vontade para fazer quaisquer testes.

Herança Compartilhamento de atributos e comportamentos entre classes de uma mesma hierarquia. Classes inferiores herdam automaticamente todas as propriedades e métodos das classes superiores(superclasses)

Polimorfismo Classes derivadas de uma mesma superclasse tenham métodos iguais, mas comportamentos diferentes, redefinidos em cada classe filha.

Prática 03 Crie classes para praticar o que vimos sobre herança e polimorfismo. Exemplos de herança: Pessoa: Física e Jurídica Conta: Poupança e Corrente Arquivo: Vídeo, Imagem e Pdf Funcionário: Professor e Coordenador Veículo: Avião, carro e bicicleta

Abstração Abstrair é separar, isolar, simplificar as partes do sistema em objetos. Classe abstrata: classes que definem o esqueleto de comportamento de outras classes, não podem ser instanciadas, ou seja, só existem objetos das classes reais que herdam dela. Classes filhas são responsáveis pela implementação da classe abstrata.

Classe Abstrata

Interface Classe que contém a prototipação de métodos que devem ser implementados pelas classes que posteriormente venham a implementá-la.

Interface x Classe Abstrata Interfaces Uma interface não é considerada uma Classe e sim uma Entidade. Não possui implementação, apenas assinatura, ou seja, apenas a definição dos seus métodos sem o corpo. Seus métodos são implicitamente Públicos e Abstratos. Não há como fazer uma instância de uma Interface e nem como criar um Construtor. Funcionam como um tipo de "contrato", onde são especificados os atributos, métodos e funções que as classes que implementem essa interface são obrigadas a implementar. As Interfaces podem ser usadas para implementar herança múltipla. Classes Abstratas As classes abstratas devem conter pelo menos um método abstrato, que não tem corpo. É um tipo especial de classe que não há como criar instâncias dela. É usada apenas para ser herdada, funciona como uma sub-classe. Uma grande vantagem é que força a hierarquia para todas as sub-classes. É um tipo de contrato que faz com que as sub-classes contemplem as mesmas hierarquias e/ou padrões.

Interface x Classe Abstrata Interface é um set de métodos sem qualquer implementação que deve ser herdado por outras classes já implementadas; Classe Abstrata é uma classe base que pode ter um ou mais métodos completos, mas pelo menos um ou mais destes métodos tem que criados incompletos (sem corpo). Se todos os método da Classe abstrata forem sem corpo, ela se torna uma Interface. O propósito de uma Classe Abstrata é prover uma base de definições de como um set de Classes Derivadas irão trabalhar e então permitir os programadores de preencher as implementações nas Classes derivadas. Para mais detalhes, visite o link: http://www.devmedia.com.br/articles/viewcomp.asp?comp=13337

Encapsulamento Proteção de acesso aos membros internos de um objeto. A própria classe defini como seus métodos e atributos devem ser acessados. Modificadores de Acesso: Private: permiti a visibilidade se e somente se for acessado dentro da própria classe; Protected: permiti a visibilidade na própria classe e nas que herdarem ela, ou seja, nas classes filhas; Public: permite a visibilidade livremente em qualquer lugar.

Prática 04 Crie uma classe de domínio de uma aplicação que salva uma agenda pessoal mas que não serve para um só usuário, ou seja, um site que guarda agenda de usuários. A classe deve conter todos os atributos necessários, esses devem ser acessíveis somente pela própria classe (encapsulamento), não esqueça de criar ascessores paras os atributos (getters e setters). Modelo de exemplo

Aula 2: Padrões de Projeto

Motivação Organização Padronização Fácil Manutenção Reutilização Eficiência Etc...

Padrão MVC Modelo no qual possibilita o reaproveitamento máximo das funcionalidades ou de partes dos sistemas produzidos nas mais diversas plataformas e equipamentos, desktop, web, embarcado, etc.

MODEL (Modelo) Modelo da aplicação, onde são definidos propriedades e atributos dos seus personagens. Camada lógica, aonde ficará toda a regra de negócio e persistência de dados. Na maioria dos casos existe ainda uma camada extra de persistência dos dados (DAO) e de regra de negócio (Service) que veremos mais a frente. O modelo pode ser compartilhado entre vários objetos, visões e controladores.

VIEW(Visualização) Camada de visualização da sua aplicação, onde ela apenas apresenta o que foi obtido através do controle ao usuário. A visão não deve ter nenhuma lógica de código, apenas a exibição dos dados. É a renderização dos dados contidos no Model afim de que o usuário possa interagir com o sistema, ou seja é a interface com o usuário, as telas do sistema.

Controller (Controle) Camada onde serão processadas todas as requisições feitas através da interface (Visão). Acessa o Modelo afim de obter determinadas informações. Recomenda-se ter o mínimo de código possível para um menor acoplação. É o gerenciador da sua aplicação.

Padrão DAO DAO: Object Access Data Camada extra que pode ser adicionada ao padrão MVC, mais precisamente a camada MODEL, que serve para isolar toda a parte de acesso aos dados do sistema. Assim caso precise modificar o banco de dados ou realizar alguma manutenção na lógica do banco de dados, ela vai estar concentrada em uma só parte do sistema.

Padrão Service Camada extra que pode ser adicionada ao Controller para garantir menor acoplamento, como também a Model. Ela fica responsável por garantir todas as regras de negócio que possam ter no sistema. Validações, testes, etc.

Padrão Indicado VIEW CONTROLLER MODEL SERVICE DAO

Prática 05 Crie todas os models (classes de domínio) do site de agenda de usuários. Comece a pensar nas regras de negócio que possa ter no site.

Aula 3 e 4: PDO

Introdução PDO (PHP Data Objects) é OO; Tem objetivo de prover uma padronização da forma com que PHP se comunica com um banco de dados relacional; Define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados. Alguns recursos podem não ser suportados por determinados SGBDs

Dependências Para podermos utilizar o PDO, deve-se habilitar no php.ini os drivers de acesso para o banco de dados de nossa aplicação, no linux habilitamos da seguinte forma: extension=pdo.so extension=pdo_mysql.so (caso o bando seja mysql) E no windows: extension=php_pdo.dll extension=php_pdo_mysql.dll (caso o banco seja mysql)

Conectando no Banco Obs.: Cada banco pode ter uma string de conexão diferente

Listando Dados

Alguns Tipos de “Fetch” PDO::FETCH_ASSOC – Retorna um array indexado pelo nome da coluna; PDO::FETCH_NUM – Retorna um array indexado pela posição numérica da coluna; PDO::FETCH_BOTH – Retorna um array indexado pelo nome da coluna e pela posição numérica da mesma; PDO::FETCH_OBJ – Retorna um objeto anônimo de modo que a coluna é acessada como propriedade. Mais em: http://www.php.net/manual/pt_BR/pdostatement.fetch.php E fetchAll em: http://www.php.net/manual/pt_BR/pdostatement.fetchall.php

Inserindo Dados

Inserindo Dados

Atualizando Dados

Excluindo Dados

Prática 06 Escolha uma das classes de domínio e crie uma classe DAO para manipular o acesso aos dados dessa classe. A classe deve conter os seguintes métodos: Salvar (que sirva tanto para salvar ou atualizar) Excluir Listar BuscarPorID Pratique em casa e crie os DAOs das outras classes.

Aula 5: PhpSmarty

Introdução O Smarty é um sistema de templates para PHP. Mais especificamente, ele fornece uma maneira fácil de controlar a separação da aplicação lógica e o conteúdo de sua apresentação. Isto é melhor descrito em uma situação onde o programador da aplicação e o designer do template executam diferentes funções, ou na maioria dos casos não são a mesma pessoa Mais em: http://www.smarty.net/

Configuração Básica Exemplo de Classe:

Utilização Básica Atribuindo Valores: assign('chave', 'valor'); Abrindo um arquivo de template: display('teste.tpl'); Retornar o Html gerado de um template: fetch('teste.tpl');

Algumas Manipulações em Templates Incluir outro template: {include file="layout/head.tpl"} Não interpretar trecho de código: {literal} <codigo aki> {/literal} Condição: {if teste}{/if} ou {if teste}{else}{/if} ou {if teste}{elseif teste}{/if}; Valor Default: {$variavel|default:'asdf'} Select html: {html_options name=usuarioID options=$usuarios selected=1} Loop: {for $i=1 to 100}{/for} ou {foreach $usuarios as $usuario}{/foreach} Mais em: http://www.smarty.net/documentation Dica: http://cirofeitosa.com.br/post/smarty-e-php-tudo-a-ver

Prática 07 Criar um template smarty e todas as configurações necessárias O template deve exibir a lista de tipos de contato (<ul>)