18

Click here to load reader

Programação Orientada a Objetos com PHP

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objetos com PHP

www.galvao.eti.br

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 1 / 18

Programação Orientada a Objetos

Professor Er Galvão Abbott

Programação Orientada a Objetos

como Linguagem de Implementação

Page 2: Programação Orientada a Objetos com PHP

Presidente da ABRAPHP – Associação Brasileira de Profissionais PHPDiretor da PHP Conference BrasilContribui para a tradução da documentação oficial Atua como Zend Framework Evangelist para o ZTeam, da Zend.Professor Especialista de Pós-Graduação

20+ anos desenvolvendo sistemas e aplicações com interface web 15+ destes com PHP 7+ com Zend Framework

Palestrante em eventos nacionais e internacionaisInstrutor de cursos presenciais e a distânciaFundador e líder do GU PHPBRFundador* e membro do GU PHPRS

Site: http://www.galvao.eti.br/ http://people.php.net/galvaoTwitter: @galvaoSlides e Documentos: http://slideshare.net/ergalvaoGithub: http://github.com/galvaoPosts: https://medium.com/@galvao

Quem?!

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 2 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Page 3: Programação Orientada a Objetos com PHP

Conteúdo

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 3 / 18

www.galvao.eti.br

● O Paradigma de Orientação a Objetos● Vantagens e Desvantagens● Generalização e conceitualização de Objetos

● Atributos e Ações● Particularidades da Orientação a Objetos para desenvolvimento web● Particularidades da linguagem PHP● Classes e Objetos

● Atributos● Métodos

● Herança● Injeção de Dependências● Namespaces● Autoloading● Abstração e Interfaces● Traits● Atributos e Métodos Estáticos● Métodos Especiais● Funções Auxiliares

Programação Orientada a Objetos

Page 4: Programação Orientada a Objetos com PHP

O Paradigma da Orientação a Objetos

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 4 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Sequencial → Funcional → Orientada a Objetos

Page 5: Programação Orientada a Objetos com PHP

Sequencial

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 5 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Page 6: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 6 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Alto índice de repetição de códigoNão há necessidade de conceitualizaçãoInexistência de GeneralizaçãoInexistência de AbstraçãoInexistência de PersistênciaDifícil OrganizaçãoLongo tempo de Manutenção

PraticidadeSimplicidadeCurto tempo de criação

Sequencial

Page 7: Programação Orientada a Objetos com PHP

Sequencial → Funcional

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 7 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Page 8: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 8 / 18

www.galvao.eti.brProgramação Orientada a Objetos

fn ( x , y ) {

}

Funcional

Page 9: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 9 / 18

www.galvao.eti.brProgramação Orientada a Objetos

fn ( x , y ) {

}

Funcional

Médio índice de repetição de códigoAlguma conceitualizaçãoAlguma GeneralizaçãoInexistência de AbstraçãoInexistência de PersistênciaRazoável/Difícil OrganizaçãoMédio tempo de Manutenção

Razoável PraticidadeRazoável SimplicidadeMédio tempo de criação

Page 10: Programação Orientada a Objetos com PHP

Funcional → Orientada a Objetos

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 10 / 18

www.galvao.eti.brProgramação Orientada a Objetos

● Identificação do Objeto● Definição de Características (Atributos)● Definição de Ações (Métodos)● Conceitualização / Generalização● Abstração

Page 11: Programação Orientada a Objetos com PHP

Orientada a Objetos

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 11 / 18

www.galvao.eti.brProgramação Orientada a Objetos

fn () {

}

class {

}

x , y

fn () {

}

class {

}

x , y

Page 12: Programação Orientada a Objetos com PHP

Orientada a Objetos

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 12 / 18

www.galvao.eti.brProgramação Orientada a Objetos

fn () {

}

class {

}

x , y

fn () {

}

class {

}

x , y

Baixa SimplicidadeLongo tempo de criação

Baixo/Inexistente índice de repetição de códigoAlta conceitualizaçãoAlta GeneralizaçãoAlta AbstraçãoPersistênciaAlta OrganizaçãoMédio/Curto Tempo de Manutenção

Page 13: Programação Orientada a Objetos com PHP

Orientação a Objetos e a Web

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 13 / 18

www.galvao.eti.brProgramação Orientada a Objetos

/logpublic

cssimgjs

/classlogpublic

cssimgjs

Page 14: Programação Orientada a Objetos com PHP

A Web

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 14 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Requisição: index.php

Processamento

Resultado

/public/index.php

Browser

Browser

Page 15: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 15 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Requisição: index.php

Processamento

Resultado

/public/index.php

Browser

Browser

Orientação a Objetos e a Web

/class/classe.php

Page 16: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 16 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Orientação a Objetos e PHP

● Métodos Construtores possuem nomes especiais● Herança Simples*● Não há sobrecarga de métodos

Diferenças mais notáveis para outras linguagens OO:

● Namespaces● Traits● Classes Anônimas**● Serialização

Características OO notáveis:

Page 17: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 17 / 18

www.galvao.eti.brProgramação Orientada a Objetos

Classes são instruções de código-fonte responsáveispela geração de Objetos.

Cada Objeto gerado possui a mesma estrutura ditadapela Classe, ou seja, basicamente possui as mesmasCaracterísticas (Atributos) e pode desempenhar asmesmas Ações (Métodos).

Classes e Objetos

Page 18: Programação Orientada a Objetos com PHP

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 6/4/16 - 18 / 18

www.galvao.eti.brProgramação Orientada a Objetos

C

O1 O2 O3 O4

x, y

fn ()

x, y

fn ()

x, y

fn ()

x, y

fn ()

Classes e Objetos