136
Orientação a Objetos em PHP @augustohp [email protected] Thursday, January 28, 2010

Orientação a Objetos na prática em php

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Orientação a Objetos na prática em php

Orientação a Objetos em PHP

@augustohp

[email protected]

Thursday, January 28, 2010

Page 2: Orientação a Objetos na prática em php

AUGUSTO PASCUTTI

• 4 anos de experiência

• ZCE

• Fundador/coordenador PHPSP

• Habari, CakePHP

Thursday, January 28, 2010

Page 3: Orientação a Objetos na prática em php

OBJETIVOS

Thursday, January 28, 2010

Page 4: Orientação a Objetos na prática em php

ORIENTAR

Thursday, January 28, 2010

Page 5: Orientação a Objetos na prática em php

PHP 5

Thursday, January 28, 2010

Page 6: Orientação a Objetos na prática em php

USAR

Thursday, January 28, 2010

Page 7: Orientação a Objetos na prática em php

ORIENTANDO-SE

Thursday, January 28, 2010

Page 8: Orientação a Objetos na prática em php

PROGRAMA PROCEDURAL ?

Thursday, January 28, 2010

Page 9: Orientação a Objetos na prática em php

ESQUEÇA !

Thursday, January 28, 2010

Page 10: Orientação a Objetos na prática em php

PENSE DIFERENTE

Thursday, January 28, 2010

Page 11: Orientação a Objetos na prática em php

PENSE OO

Thursday, January 28, 2010

Page 12: Orientação a Objetos na prática em php

CLASSES

Thursday, January 28, 2010

Page 13: Orientação a Objetos na prática em php

BASE DA OO

Thursday, January 28, 2010

Page 14: Orientação a Objetos na prática em php

MOLDES

Thursday, January 28, 2010

Page 15: Orientação a Objetos na prática em php

INSTRUÇÕES

Thursday, January 28, 2010

Page 16: Orientação a Objetos na prática em php

SEM VONTADE PRÓPRIA

Thursday, January 28, 2010

Page 17: Orientação a Objetos na prática em php

CLASSES

Thursday, January 28, 2010

Page 18: Orientação a Objetos na prática em php

CLASSES

Thursday, January 28, 2010

Page 19: Orientação a Objetos na prática em php

CLASSES

Thursday, January 28, 2010

Page 20: Orientação a Objetos na prática em php

CLASSES

Thursday, January 28, 2010

Page 21: Orientação a Objetos na prática em php

CLASSES

• Uma classe por arquivo

• Padrões de nomenclatura

• Padrão_Zend_ou_Pear

• PadrãoCamelCase

• PaDrÃoMiGuXo

Thursday, January 28, 2010

Page 22: Orientação a Objetos na prática em php

OBJETOSThursday, January 28, 2010

Page 23: Orientação a Objetos na prática em php

FILHOS DAS CLASSES

Thursday, January 28, 2010

Page 24: Orientação a Objetos na prática em php

INFORMAÇÕES

Thursday, January 28, 2010

Page 25: Orientação a Objetos na prática em php

INDEPENDENTES

Thursday, January 28, 2010

Page 26: Orientação a Objetos na prática em php

EXECUTORES

Thursday, January 28, 2010

Page 27: Orientação a Objetos na prática em php

EXECUTAM

Thursday, January 28, 2010

Page 28: Orientação a Objetos na prática em php

ATRIBUTOSThursday, January 28, 2010

Page 29: Orientação a Objetos na prática em php

DECLARADOS NA CLASSEThursday, January 28, 2010

Page 30: Orientação a Objetos na prática em php

USADOS NOS OBJETOSThursday, January 28, 2010

Page 31: Orientação a Objetos na prática em php

PROPRIEDADESThursday, January 28, 2010

Page 32: Orientação a Objetos na prática em php

INFORMAÇÕESThursday, January 28, 2010

Page 33: Orientação a Objetos na prática em php

VARIÁVEISThursday, January 28, 2010

Page 34: Orientação a Objetos na prática em php

4Thursday, January 28, 2010

Page 35: Orientação a Objetos na prática em php

VARIÁVEISThursday, January 28, 2010

Page 36: Orientação a Objetos na prática em php

5Thursday, January 28, 2010

Page 37: Orientação a Objetos na prática em php

VARIÁVEISThursday, January 28, 2010

Page 38: Orientação a Objetos na prática em php

MÉTODOSThursday, January 28, 2010

Page 39: Orientação a Objetos na prática em php

DECLARADOS NA CLASSEThursday, January 28, 2010

Page 40: Orientação a Objetos na prática em php

USADOS PELOS OBJETOSThursday, January 28, 2010

Page 41: Orientação a Objetos na prática em php

FUNÇÕESThursday, January 28, 2010

Page 42: Orientação a Objetos na prática em php

FAZEM COISASThursday, January 28, 2010

Page 43: Orientação a Objetos na prática em php

DÃO E RECEBEMThursday, January 28, 2010

Page 44: Orientação a Objetos na prática em php

4Thursday, January 28, 2010

Page 45: Orientação a Objetos na prática em php

DÃO E RECEBEMThursday, January 28, 2010

Page 46: Orientação a Objetos na prática em php

5Thursday, January 28, 2010

Page 47: Orientação a Objetos na prática em php

DÃO E RECEBEMThursday, January 28, 2010

Page 48: Orientação a Objetos na prática em php

AUTOLOAD

Thursday, January 28, 2010

Page 49: Orientação a Objetos na prática em php

AUTOLOAD•Executado na instanciação

•Executado somente para classes não declaradas

•Nativo do PHP

•Duas implementações

•__autoload

•SPL

•Sem includes/requires

•Melhora consumo de memória

Thursday, January 28, 2010

Page 50: Orientação a Objetos na prática em php

AUTOLOAD

Thursday, January 28, 2010

Page 51: Orientação a Objetos na prática em php

AUTOLOAD

Thursday, January 28, 2010

Page 52: Orientação a Objetos na prática em php

MEMBROS DA CLASSEThursday, January 28, 2010

Page 53: Orientação a Objetos na prática em php

CONSTANTES

Thursday, January 28, 2010

Page 54: Orientação a Objetos na prática em php

CONSTANTES

Thursday, January 28, 2010

Page 55: Orientação a Objetos na prática em php

ESTÁTICOS

Thursday, January 28, 2010

Page 56: Orientação a Objetos na prática em php

ESTÁTICOS

Thursday, January 28, 2010

Page 57: Orientação a Objetos na prática em php

ESTÁTICOS

Thursday, January 28, 2010

Page 58: Orientação a Objetos na prática em php

MENSAGENSThursday, January 28, 2010

Page 59: Orientação a Objetos na prática em php

PODER DA OOThursday, January 28, 2010

Page 60: Orientação a Objetos na prática em php

TROCA DE INFORMAÇÕES Thursday, January 28, 2010

Page 61: Orientação a Objetos na prática em php

TROCA DE INFORMAÇÕES Thursday, January 28, 2010

Page 62: Orientação a Objetos na prática em php

HERANÇAThursday, January 28, 2010

Page 63: Orientação a Objetos na prática em php

CLASSE PAIThursday, January 28, 2010

Page 64: Orientação a Objetos na prática em php

CLASSE FILHAThursday, January 28, 2010

Page 65: Orientação a Objetos na prática em php

VISIBILIDADE

Thursday, January 28, 2010

Page 66: Orientação a Objetos na prática em php

PUBLIC

Thursday, January 28, 2010

Page 67: Orientação a Objetos na prática em php

PROTECTED

Thursday, January 28, 2010

Page 68: Orientação a Objetos na prática em php

PRIVATE

Thursday, January 28, 2010

Page 69: Orientação a Objetos na prática em php

POLIMORFISMOThursday, January 28, 2010

Page 70: Orientação a Objetos na prática em php

ERA UMA COISAThursday, January 28, 2010

Page 71: Orientação a Objetos na prática em php

AGORA É OUTRAThursday, January 28, 2010

Page 72: Orientação a Objetos na prática em php

SOBRECARGAThursday, January 28, 2010

Page 73: Orientação a Objetos na prática em php

NA VERDADE: SOBRESCRITAThursday, January 28, 2010

Page 74: Orientação a Objetos na prática em php

NA VERDADE: SOBRESCRITAThursday, January 28, 2010

Page 75: Orientação a Objetos na prática em php

FINALThursday, January 28, 2010

Page 76: Orientação a Objetos na prática em php

IMPEDE O POLIMORFISMOThursday, January 28, 2010

Page 77: Orientação a Objetos na prática em php

USADO EM CLASSES ...Thursday, January 28, 2010

Page 78: Orientação a Objetos na prática em php

E MÉTODOSThursday, January 28, 2010

Page 79: Orientação a Objetos na prática em php

E MÉTODOSThursday, January 28, 2010

Page 80: Orientação a Objetos na prática em php

ABSTRATOThursday, January 28, 2010

Page 81: Orientação a Objetos na prática em php

NÃO PODE SER INSTANCIADAThursday, January 28, 2010

Page 82: Orientação a Objetos na prática em php

USADA COMO PAIThursday, January 28, 2010

Page 83: Orientação a Objetos na prática em php

USADA COMO PAIThursday, January 28, 2010

Page 84: Orientação a Objetos na prática em php

USADA COMO PAIThursday, January 28, 2010

Page 85: Orientação a Objetos na prática em php

MÁGICAThursday, January 28, 2010

Page 86: Orientação a Objetos na prática em php

MÉTODOS MÁGICOSThursday, January 28, 2010

Page 87: Orientação a Objetos na prática em php

EXECUTADOS PELO PHPThursday, January 28, 2010

Page 88: Orientação a Objetos na prática em php

14 EXISTENTES NO PHP 5.3Thursday, January 28, 2010

Page 89: Orientação a Objetos na prática em php

SEMPRE COMEÇAM COM “_ _”Thursday, January 28, 2010

Page 90: Orientação a Objetos na prática em php

CONSTRUINDO

Thursday, January 28, 2010

Page 91: Orientação a Objetos na prática em php

__CONSTRUCT

•Executado na instanciação do objeto

•Não pode retornar nada

•Pode sofrer sobrecarga

•Pode receber argumentos

Thursday, January 28, 2010

Page 92: Orientação a Objetos na prática em php

__CONSTRUCT

Thursday, January 28, 2010

Page 93: Orientação a Objetos na prática em php

DESTRUINDOThursday, January 28, 2010

Page 94: Orientação a Objetos na prática em php

__DESTRUCT

•Executado quando objeto sai da memória

•Final do script

•unset() do objeto

•Pode ser útil em

•Banco de dados

•Logs

•etc ...

Thursday, January 28, 2010

Page 95: Orientação a Objetos na prática em php

__DESTRUCTThursday, January 28, 2010

Page 96: Orientação a Objetos na prática em php

MOSTRANDO

Thursday, January 28, 2010

Page 97: Orientação a Objetos na prática em php

__TOSTRING

•Chamado quando objeto é usado como String

•O método DEVE retornar uma String

•Útil para objetos que devem retornar algo visual

•Paginador, Botão

•Até a versão 5.2 funcionava só com `print` e `echo`

•> 5.2 funciona em qualquer contexto de string

•TypeCast

•sprintf()

Thursday, January 28, 2010

Page 98: Orientação a Objetos na prática em php

__TOSTRING

Thursday, January 28, 2010

Page 99: Orientação a Objetos na prática em php

OUTROS MÉTODOS MÁGICOS

•__call

•__get

•__set

•__get

•__isset

•__clone

•http://php.net/manual/en/language.oop5.magic.php

Thursday, January 28, 2010

Page 100: Orientação a Objetos na prática em php

INTERFACES

Thursday, January 28, 2010

Page 101: Orientação a Objetos na prática em php

“CLASSES” GENÉRICAS

Thursday, January 28, 2010

Page 102: Orientação a Objetos na prática em php

DEFINEM COMPORTAMENTOS

Thursday, January 28, 2010

Page 103: Orientação a Objetos na prática em php

TIPOS DE DADOS

Thursday, January 28, 2010

Page 104: Orientação a Objetos na prática em php

TIPOS DE DADOS

Thursday, January 28, 2010

Page 105: Orientação a Objetos na prática em php

TIPOS DE DADOS

•Mais genéricos que Classes Abstratas

•Uma classe pode implementar várias Interfaces

Thursday, January 28, 2010

Page 106: Orientação a Objetos na prática em php

EXCEPTIONS

Thursday, January 28, 2010

Page 107: Orientação a Objetos na prática em php

TRABALHANDOThursday, January 28, 2010

Page 108: Orientação a Objetos na prática em php

OBJETOS E REFERÊNCIASThursday, January 28, 2010

Page 109: Orientação a Objetos na prática em php

OBJETOS E REFERÊNCIASThursday, January 28, 2010

Page 110: Orientação a Objetos na prática em php

OBJETOS E REFERÊNCIASThursday, January 28, 2010

Page 111: Orientação a Objetos na prática em php

OBJETOS E REFERÊNCIASThursday, January 28, 2010

Page 112: Orientação a Objetos na prática em php

TYPE HINTThursday, January 28, 2010

Page 113: Orientação a Objetos na prática em php

TYPE HINT

•Forçam um tipo a um argumento

•Só podem ser usados como tipo:

•Array

•Classes

Thursday, January 28, 2010

Page 114: Orientação a Objetos na prática em php

TYPE HINTThursday, January 28, 2010

Page 115: Orientação a Objetos na prática em php

TYPE HINTThursday, January 28, 2010

Page 116: Orientação a Objetos na prática em php

INSTANCE OFThursday, January 28, 2010

Page 117: Orientação a Objetos na prática em php

INSTANCE OF

•Checa se um objeto é uma determinada instância

•Retorna boolean

•Um objeto pode ser checado contra

•Classe

•Classe Abstrata

•Interface

Thursday, January 28, 2010

Page 118: Orientação a Objetos na prática em php

INSTANCE OFThursday, January 28, 2010

Page 119: Orientação a Objetos na prática em php

BANCO DE DADOSThursday, January 28, 2010

Page 120: Orientação a Objetos na prática em php

ABSTRAIAThursday, January 28, 2010

Page 121: Orientação a Objetos na prática em php

ABSTRAIA

•Melhora segurança

•Centraliza execuções

•Melhor manutenção

•Evita dor de cabeças

Thursday, January 28, 2010

Page 122: Orientação a Objetos na prática em php

NÃO REINVENTE A RODAThursday, January 28, 2010

Page 123: Orientação a Objetos na prática em php

USE A PDOThursday, January 28, 2010

Page 124: Orientação a Objetos na prática em php

USE A PDO

•O que ela é:

•Abstração de Acesso para banco de dados

•Nativo do PHP 5.1

•Aprenda uma sintaxe de conexão

•Muito/Extremamente TESTADA pra caramba

•Mais leve do que qualquer outra

Thursday, January 28, 2010

Page 125: Orientação a Objetos na prática em php

USE A PDO

•O que ela NÃO é:

•Não abstrai suas queries

•Não evita instalação de drivers dos bancos

•Não vai resolver seus problemas

•Nem de segurança

•Nem de performance

Thursday, January 28, 2010

Page 126: Orientação a Objetos na prática em php

USANDO A PDOThursday, January 28, 2010

Page 127: Orientação a Objetos na prática em php

USANDO A PDOThursday, January 28, 2010

Page 128: Orientação a Objetos na prática em php

PDO STATEMENTS

•Agilizam a execução de queries repetidas

•Implementam um pouco de segurança

•Simplificam o uso de queries repetidas

•Simplificam Fetch de resultados

Thursday, January 28, 2010

Page 129: Orientação a Objetos na prática em php

PDO STATEMENTSThursday, January 28, 2010

Page 130: Orientação a Objetos na prática em php

PARÂMETROSThursday, January 28, 2010

Page 131: Orientação a Objetos na prática em php

RETORNO ID INSERIDOThursday, January 28, 2010

Page 132: Orientação a Objetos na prática em php

DESIGN PATTERNSThursday, January 28, 2010

Page 133: Orientação a Objetos na prática em php

DESIGN PATTERNS

•Solução comum para problemas comuns

•Independem de linguagem

•Vocuabulário comum

•Primeiros DP: Gang of Four

Thursday, January 28, 2010

Page 134: Orientação a Objetos na prática em php

DESIGN PATTERNS

•Singleton

•Factory

•Strategy

•Data Access Object

•Value Objects

•MVC

Thursday, January 28, 2010

Page 135: Orientação a Objetos na prática em php

FRAMEWORKSThursday, January 28, 2010

Page 136: Orientação a Objetos na prática em php

PERGUNTAS ?

Augusto [email protected]

@augustohp

http://www.slideshare.net/augustopascutti

Thursday, January 28, 2010