Conceitos de Orientação a Objetos

Documentos relacionados
AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

MONTANDO UMA CONSULTA COM FILTROS. Vamos criar uma tela que gere uma relação de dados, escolhendo a ordenação e um filtro.

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

Como criar um banco de dados usando o mysql

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Sistema de Informação e Coordenação - SIC

Desenvolvimento Web II

Cadastros de dados no MySQL

Web Interativa com Ajax e PHP

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

AULA 6 IMPLEMENTAR TELA UTILIZANDO FRAMEWORK JEASYUI + PHP

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

Desenvolvimento Web III. Prof. Felippe Scheidt

ALUNO: RONI FABIO BANASZEWSKI

cadastro de usuários utilizando Ajax e PHP para inserir os dados em uma tabela MySQL.

Continuação... Criando a Interface e adiante

Ademir Cristiano Gabardo. Novatec

Professor Jefferson Chaves Jefferson de Oliveira Chaves

Internet e Programação Web

Desenvolvimento de Aplicações para Internet Aula 11

TRABALHO FINAL 20 Pontos

Guilherme Fernando Gielow

SISTEMA WEB ESCOLAR PARA RESERVA DE RECURSOS DIDÁTICOS UTILIZANDO RBC

ADIANTI FRAMEWORK PARA PHP

JAVASCRIPT. Desenvolvimento Web I

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

WebWork 2. João Carlos Pinheiro.

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

EA975 - Laboratório de Engenharia de Software

Curso de HTML aula 4. Sumário. 1 Formulários. 1.1 Construindo formulários com o FORM. 1.2 Método:

Formação ASP.NET MVC com C#

ADIANTI FRAMEWORK PARA PHP

A c c e s s. Data Lógica Informática. Ambiente Real Conhecimento de Verdade. Carga Horária (referencial): 30 horas. Pré-requisito: Windows

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

AJAX. Prof. Marcos Alexandruk

Aplicações Web com Servlets e JSP

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

Bases de Dados. Lab 7: Desenvolvimento de aplicações com PHP

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Levantamento, Análise e Gestão Requisitos. Aula 03

Informática Parte 24 Prof. Márcio Hunecke

igrpweb Índice gráfico Cliente NOSi igrpweb Referência Versão 1.00 Status

Desenvolvimento de Aplicações para Internet Aula 8

Desenvolva passo a passo um Sistema Web seguro com C# e Web Services!

SISTEMA GERENCIAMENTO DE PRODUTOS PHP E MySQL 1. APRESENTAÇÃO

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Behavior-Driven Development. Professor: Régis Patrick Silva Simão

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

A área de um formulário, na codificação HTML da página, é delimitada pelo par de marcadores <FORM> e </FORM>.

Desenvolvimento do Módulo Meus Processos

Introdução a Programação Web com PHP

GUIA PHP com MYSQL Autor: Everton Mendes Messias

Introdução ao Desenvolvimento de

Boas práticas em programação PHP

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Transcrição:

AULA 1 INTRODUÇÃO AO PHP Em PHP AVANÇADO, além de voltar a focar o desenvolvimento em PHP interagindo com o banco de dados Postgresql, também iremos trabalhar com desenvolvimento com orientação a objetos. Agregaremos também a metodologia MCV também a utilização de uma framework. Conceitos de Orientação a Objetos Classe - Conceito A classe é uma estrutura que rege o comportamento de seus objetos, sendo caracterizada por possuir métodos e atributos. Da mesma forma que os tipos de variáveis regem o comportamento das variáveis, restringindo e limitando suas ações, as classes regem o comportamento e limitam as ações dos objetos. De tal forma, alguns livros citam as classes como um super-tipo de variável. Encapsulamento O conceito do encapsulamento consiste em esconder os atributos da classe de quem for utilizá-la. Isso se deve por dois motivos principais. Um é para que alguém que for usar a classe não a use de forma errada como, por exemplo, em uma classe que tem um método de divisão entre dois atributos da classe - se o programador não conhecer a implementação interna da classe, ele pode colocar o valor zero no atributo do dividendo, mas se a classe estiver corretamente encapsulada podemos impedir que o programador faça isso. 1

Você sabe o que é MVC??? MVC é um padrão de arquitetura de software que separa a informação (e as suas regras de negócio) da interface com a qual o usuário interage. É uma forma de estruturar seu projeto/aplicação de forma que a interface de interação (view) esteja separada do controle da informação em si (models), separação essa que é intermediada por uma outra camada controladora (controllers). O que é Model? Model é onde fica a lógica da aplicação. Podemos representar através das classes. As classes que desenvolveremos, tratarão de receber e armazenar dados no banco de dados. É importante frizar que um model deve ser desenvolvido para que o mesmo seja reutilizável para qualquer view ou controller. O que é View? View exibe os dados. Só isso. View não é só o HTML, mas pode ser qualquer tipo de retorno de dados, como PDF, Json, XML, os tokens de autenticação, entre outro. Qualquer retorno de dados para uma interface qualquer (o navegador, por exemplo) é responsabilidade da view. A view deve saber renderizar os dados corretamente, mas não precisa saber como obtê-los ou quando renderizá-los. O que é Controller? O controller diz quando as coisas devem acontecer. Só isso. É usado para intermediar a model e a view de uma camada. Por exemplo, para pegar dados da model (guardados em um banco) e exibir na view (em uma página HTML), ou pegar os dados de um formulário (view) e enviar para alguém (model). 2

Como faremos nossa estrutura Nas aulas teremos uma estrutura o mais aproximado possível das boas práticas do desenvolvimento MVC. A vantagem é a organização dos trechos de código, e sendo que cada um tem sua finalidade específica. Na pasta classes ficaram nossos modelos. Na pasta app ficarão nossos controles. Na pasta view ficarão as telas. c:\apache\htdocs\ -------------------------- classes -------------------------- app -------------------------- view Exemplo bem básicão: Model class Pessoa { public $nome; public function cadastrar() { $sql = "insert into pessoa values ('$this->nome'); $res = pg_query($sql); View <form method=post> 3

Nome pessoa <input type='text' name='nome'> <input type='submit' name='opcao' value='cadastrar'> </form> Controller if ($opcao == 'Cadastrar') { include 'class.pessoa.php'; $objeto = new Pessoa; $objeto->nome = $_POST['nome']; $objeto->cadastrar(); Frameworks Temos a opção de criar nossa própria forma de criar nossos controles e views ou optar a trabalhar com uma framework. Um exemplo de framework voltado para desenvolvimento é o jeasyui. O jeasyui faz muito bem essa distinção entre as camadas de modelo, visão e controle. O pré requisito é que, além de conhecer PHP e banco de dados, faz-se necessário conhecer Ajax (javascript). Neste caso parte do Controller é feito pelo PHP e parte feito pelo Javascript. Veremos exemplos mais para frente. 4

EMENTA CONTEÚDO QUE SERÁ ESTUDADO NO SEMESTRE 1 Interação com banco de dados 2 - Comandos de conexão com banco de dados 3 - Comandos e conceitos sobre PHP orientado a objetos (classes e métodos) 4 - Incluir, alterar, excluir e pesquisar dados em uma tabela, através de um programa em PHP utilizando classes e métodos tela simples Escrever uma classe, instanciar uma classe 5 - Incluir, alterar, excluir e pesquisar dados em uma tabela, através de um programa em PHP utilizando classes e métodos tela com relacionamento entre tabelas Escrever uma classe, instanciar uma classe 6 Conceito e comandos de Sessão 7 - Criação de relatórios com quebra e totalização 8 - Explicação das classes fpdf 9 - Gerando um relatório com a classe fpdf 5